web服务器-nginx反向代理
web服务器-nginx反向代理
一. 代理介绍
- 代理是网络中使用比较常见的, 比如我们说的最多的就是FQ软件, 比如ss, 蓝灯等这些大家常用的软件,他们就是能改代理大家访问的国内无法访问的一些国外网站,比如fecebook,youtube等网站,其原理也比较简单
- 用户将请求发给代理服务器
- 代理服务器代用户去访问数据
- 代理服务器将数据给用户
- 正常没有代理情况上网
代理服务器场景
代理服务器扮演的就是一个中间人的角色。
- 代理服务器分为正向代理和反向代理俩种类型:
- 正向代理:代理用户访问其他网站,比如ss,蓝灯
- 反向代理:用来发布服务器,比如nginx
二应用场景
三. 反向代理的原理
- 客户端通过浏览器,发起请求,代理服务器
- 代理服务器,接受请求
- 代理服务器给业务服务器发起请求
- 业务服务器接受请求
- 业务服务器处理请求
- 业务服务器响应请求 给代理服务器
- 代理服务器 给客户端 响应请求
- 客户端通过浏览器渲染请求并展示给用户
-
代理服务器和业务服务器之间需要进行配置
-
反向代理的作用:
- 保证内网的安全,可以使用反向代理提供WAF功能,阻止web攻击。大型网站,通常将反向代理作为公网访问地址,Web服务器是内网。
- 负载均衡,通过反向代理服务器来优化网站的负载
四. 正向代理的原理
-
正向代理类似一个跳板机,代理访问外部资源,用户都是通过代理服务器来达到访问.
-
用户需要配置代理服务器的地址,
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181228111141182.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5NjQ3NzA5,size_16,color_FFFFFF,t_70)
五 反向代理的实现
-
nginx反向代理指令: proxy_pass
-
反向代理的实现:
location / { index index.php index.html index.htm; #定义首页索引文件的名称 proxy_pass http://mysvr ;#请求转向mysvr 定义的服务器列表 } location ~ .*\.(png|jpg|gif)$ { gzip on; root /soft/code/images; }
-
反向代理的优化.直接放在
location / { index index.php index.html index.htm; #定义首页索引文件的名称 proxy_pass http://mysvr ;#请求转向mysvr 定义的服务器列表 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; #允许客户端请求的最大单文件字节数 client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数, proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时) proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时) proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时) proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小 proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置 proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2) proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传 }
注意: 最好是将注释删掉