反向代理:反向代理是指将外部网络用户的请求转发到特定的内部服务器并将数据返回给用户的方式。
除了提供高性能的企业Web服务外,Nginx还可以通过一些预定义的协议转发Nginx本身不需要处理的请求。 对于通信,Nginx服务器与其他服务器使用不同的协议来实现不同场景下的不同功能
生成环境部署架构:
访问逻辑图:
Nginx-反向代理HTTP服务:
1.proxy_pass
2.proxy_hide_headerfield
更改前,响应消息的头部包含ETag信息
更改后ETag信息将被隐藏
3.proxy_pass_headerfield
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层都会记录上一层,包括代理可以传递到后端。 Server
proxy_add_x_forwarded_for实现多级代理IP地址透明传输。 需要在代理的各个级别启用。
实验环境:
七、关于反向代理多个时间参数
8.proxy_ignore_client_abort
9.哈希表大小设置
客户端-----http协议-------nginx(代理服务器,10.0.0.86)-----http---apache(10.0.0.85)
客户端通过访问nginx上定义的虚拟主机中的域名server_name,通过内部定义的位置匹配规则转发到10.0.0.85服务器
代理服务器与后端服务器连接问题时可能出现的错误:
当后端服务器要发送图片资源时放在固定目录下,也可以自定义它,如:。 B.将其存储在/var/www/html/static中。 那么nginx的位置需要修改如下:
缓存功能相关参数:
实验环境:
proxy_pass允许Nginx将客户端请求传递给一个代理服务器。 特定的一组服务器无法将相应的服务器状态转发到后端服务器。
Nginx可以使用ngx_http_upstream_module模块上的各种调度算法和其他高级功能来转发服务器数据包、权重分配并提供状态监控
关于ip_forward
注意:本次实验时需要先关闭缓存
固定URI的访问安排在同一个服务器
Nginx(enginex)是一个高性能的HTTP和反向代理Web服务器,还提供IMAP/POP3/SMTP服务。
Nginx是由IgorSesoev为俄罗斯访问量第二大的Rambler.ru网站(俄语:Рамблер)开发的,首次发布版本0.1.0于2004年10月4日发布。
它以类似BSD的许可证发布源代码,以其稳定性、丰富的功能集、简单的配置文件和低系统资源消耗而闻名。
Nginx是一个使用类BSD协议发布的轻量级Web服务器、反向代理服务器和电子邮件(IMAP/POP3)代理服务器。 其特点是占用内存少,并发能力强。 事实上,中国大陆地区的nginx网站用户在百度、京东、新浪、网易等同类型Web服务器中表现较好。 腾讯、淘宝等
反向代理的优点:
1.加快访问内部服务器的速度。
部署两个反向代理服务器。 这样,公共网络的用户可以通过公共网络线路直接访问学校服务器,避公共网络和教育网络之间的链路拥塞。 同时,反向代理服务器的缓存功能也加快了用户访问速度。
2、节约有限的IP资源
校园网内部服务器除了使用学术网地址外,还使用我们提供的公网IP地址进行服务。 公共网络分配的IP地址数量有限。 如果每台服务器都分配一个公网地址,反向代理技术无法解决IP地址耗尽的问题。
上一篇:nginx实现负载均衡
下一篇:nginx怎么使用