如何使用nginx设定反向代理

如何使用nginx设定反向代理,第1张

如何使用nginx设定反向代理 修改部署目录下conf子目录的nginx.conf档案(如nginx-1.5.13\conf\nginx.conf)内容,可调整相关配置。

反向代理配置示例:

location / {#设定主机头和客户端真实地址,以便伺服器获取客户端真实IP proxy_set_header Host $hostproxy_set_header X-Real-IP $remote_addr proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for#禁用快取 proxy_buffering off#设定反向代理的地址 proxy_pass :192.168.1.1 }

代理地址根据实际情况修改。

如何使用Nginx反向代理使用SSL配置Jenkins

根据ssl.key和ssl.crt部署nginx

首先nginx需要支援ssl_module,然后修改nginx.conf如下

server {

listen 443

server_name localhost

ssl on

ssl_certificate /opt/tengine/conf/ssl/free4lab.crt

ssl_certificate_key /opt/tengine/conf/ssl/free4lab_nopass.key

ssl_session_timeout 5m

}

在相应的位置放置crt档案和key档案,注意到这边的key是nopassword的,就是重启nginx的时候,不需要输入密码。

free4lab_nopass.key是根据free4lab.key生成的,生成命令如下

该模组支援标准的 IEEE802.11 b/g/n 协议,完整的 TCP/IP 协议栈。使用者可以使用该模组为现有的装置新增联网功能,也可以构建独立的网路控制器

如何使用webpack-dev-server做反向代理

并没有这个引数你得再 entry 加入如下 var config = require("./webpack.config.js")config.entry.app.unshift("webpack-dev-server/client?:localhost:8080")var piler = webpack(config)var server = new webpackDevServer(...

CentOS 6.5 下 如何使用Squid 实现反向代理?

全部的squid配置大部分网上都能搜到.

关键的配置是下面一句.

cache_peer 127.0.0.1 parent 8080 0 no-query no-digest

意思就是把你的本机127.0.0.1作为你的上级伺服器.

如何使用apache的反向代理改写url绝对路径

页面原始码中的相对路径都正常. 但页面原始码中有部分连结是写成了绝对路径,那么滑鼠放到连结上时显示的路径仍然是0.92/.,那么访问这个连结时就直接去访问0.92了,而不是

如何使用Weave以及Docker搭建Nginx反向代理/负载均衡伺服器

Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡伺服器。Weave 可以建立一个虚拟网路将 Docker 容器彼此连线在一起,支援跨主机部署及自动发现。它可以让我们更加专注于应用的开发,而不是基础架构。Weave 提供了一个如此棒的环境,仿佛它的所有容器都属于同个网路,不需要埠/对映/连线等的配置。容器中的应用提供的服务在 weave 网路中可以轻易地被外部世界访问,不论你的容器执行在哪里。在这个教程里我们将会使用 weave 快速并且简单地将 nginx web 伺服器部署为一个负载均衡器,反向代理一个执行在 Amazon Web Services 里面多个节点上的 docker 容器中的简单 php 应用。这里我们将会介绍 WeaveDNS,它提供一个不需要改变程式码就可以让容器利用主机名找到的简单方式,并且能够让其他容器通过主机名连线彼此。

正向代理,用通俗的方式来说,就是代理服务器只起到转发的作用,例如,在顾客进商店购买东西,商店就是一个正向代理,起到的作用就是把商品从厂家代理售卖到顾客手中。

反向代理,就是顾客的请求是确定的,但将商品的需求信息发送给代理商之后,代理商通过各种方式寻找不同的供货商,再把供货商提供的商品转交给顾客。顾客是不知道代理商背后的供货商是谁的。这种方式有点类似于目前的“三只松鼠”等网络直销平台的逻辑,顾客发送芒果干的请求给三只松鼠,三只松鼠从全国进行供货商的选择,拿到货品后再打上三只松鼠的logo转交给顾客,实现反向的代理,代理的是供货商,顾客不知道具体的供应商是谁(所以才会要求包装上需要印上供应商的名称和地址,要不然出问题都不知道找谁。)

Nginx的安装网络有很多资源,包括Linux和Windows的,在此不表。主要关注一下如何进行配置,来看看 nginx.conf.default 中的配置信息:

可以看到,主要的几个配置模块:

下面主要讲讲经常使用的server以及location的配置。

gzip压缩中

对于阿里云上的配置,我们直接使用一级域名 abc.com 解析阿里云服务器的IP地址:

反向代理: reverse proxy, 指的是代理外网用户的请求到内部的指定的服务器, 并将数据返回给用户的一种方式, 这是用的比较多的一种方式

Nginx除了可以为企业提供高性能的web服务之外, 另外还可以将Nginx本身不具备的请求通过某种预定义的协议转发至其他服务器处理, 不同的协议就是Nginx服务器与其他服务器进行通信的一种规范, 主要在不同的场景使用以下模块实现不同的功能

生成环境部署架构:

访问逻辑图:

Nginx反向代理http服务:

1. proxy_pass

2. proxy_hide_header field

修改前, 响应报文头部会携带ETag信息

修改后ETag信息被隐藏

3. proxy_pass_header field

4. proxy_pass_request_body

5. proxy_pass_request_headers

6. proxy_set_header

由于proxy_set_header只是修改了请求报文的头部信息, 添加了自定义的字段, 因此, 还需要在后端服务器修改日志定义格式, 才能方便将客户端ip记录到日志信息中

注意1:通过set_proxy_header自定义变量只是给请求报文添加了一个自定义的字段, 其字段值是人为根据系统内置变量设定的

注意2: 这种方法, 在多级代理的情况下, 并不能将客户端ip, 逐层的传给后端服务器, 而是需要利用$proxy_add_x_forwarded_for变量实现

注意3: 如果一定要使用proxy_set_header去传递客户端ip和每一层代理的ip地址, 那么需要在每一层nginx代理都开启proxy_set_header, 并且设置不同的自定义变量去引用nginx自带变量$remote_addr, 这样每一级nginx都会记录上一级, 也就包括客户端的ip地址, 同时, 在后端服务器的日志格式中, 要添加多个nginx自定义的变量, 这样也可以把客户端ip和中间经过的代理的ip全部传递给后端的服务器

proxy_add_x_forwarded_for实现多级代理ip地址透传示例: 需要在每一级代理都开启

实验环境:

7. 有关反向代理时间的几个参数

8. proxy_ignore_client_abort

9. hash表大小的设置

客户端 ----- http协议 ------- nginx(代理服务器,10.0.0.86) ----- http --- apache (10.0.0.85)

客户端, 通过访问nginx上定义的虚拟主机中的server_name域名, 通过内部定义的location匹配规则, 被转发到10.0.0.85服务器

代理服务器与后端服务器连接出现问题可能发生的报错:

如果后端服务器想把图片资源放到固定的目录下, 也可以自定义, 比如存到/var/www/html/static, 那么nginx的location就要修改为如下:

缓存功能相关参数:

实验环境:

proxy_pass 可以让Nginx将客户端请求转发至后端单台服务器, 但是无法转发至特定的一组服务器, 而且不能对后端服务器提供相应的服务器状态监测.

Nginx可以基于 ngx_http_upstream_module 模块提供服务器分组转发, 权重分配, 状态监测, 使用不同的调度算法等高级功能

关于ip_forward

注意: 本实验过程要先关闭缓存

访问固定的URI会被调度到相同的服务器


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/340141.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存