Nginx反向代理服务
2021/8/8 7:10:24
本文主要是介绍Nginx反向代理服务,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Nginx反向代理服务
Nginx代理服务基本概述
什么是代理
代理一词往往并不陌生, 该服务我们常常用到如(代理理财、代理租房、代理收货等等),如下图所示
没有代理情况
在没有代理模式的情况下,客户端和Nginx
服务端,都是客户端直接请求服务端,服务端直接响应客户端
企业场景
那么在互联网请求里面,客户端往往无法直接向服务端发起请求,那么就需要用到代理服务,来实现客户端和服务通信,如下图所示
Nginx代理服务常见模式
Nginx作为代理服务,按照应用场景模式进行总结,代理分为正向代理、反向代理
正向代理
正向代理,(内部上网)客户端<—>代理->服务端
反向代理
反向代理,用于公司集群架构中,客户端->代理<—>服务端
正向代理与反向代理的区别
1.区别在于形式上服务的”对象”不一样
2.正向代理代理的对象是客户端,为客户端服务
3.反向代理代理的对象是服务端,为服务端服务
Nginx代理服务支持协议
Nginx作为代理服务,可支持的代理协议非常的多,具体如下图
反向代理使用协议
如果将Nginx作为反向代理服务,常常会用到如下几种代理协议,如下图所示
反向代理模块
反向代理模式与Nginx代理模块总结如表格所示
反向代理模式 | Nginx****配置模块 |
---|---|
http、websocket、https | ngx_http_proxy_module |
fastcgi | ngx_http_fastcgi_module |
uwsgi | ngx_http_uwsgi_module |
grpc | ngx_http_v2_module |
环境准备
主机名 | 角色 | 外网IP | 内网IP |
---|---|---|---|
lb01 | 反向代理服务器 | 10.0.0.5 | 172.16.1.5 |
web01 | 被代理的服务器 | 10.0.0.7 | 172.16.1.7 |
部署代理服务器
# 1.安装nginx [root@lb01 ~]# yum install -y nginx # 2.修改nginx的配置文件 [root@lb01 ~]# vim /etc/nginx/conf.d/proxy.conf server{ listen 80; server_name blog.drz.com; location / { proxy_pass http://172.16.1.7:80; } } # 3.本地域名解析C:\Windows\System32\drivers\etc\hosts 10.0.0.5 blog.drz.com ## 代理172.16.1.7的80端口 proxy_pass http://172.16.1.7:80; ## 存在问题,后端网站是通过IP访问的,没有通过域名 proxy_set_header Host $http_host; ## 将域名放入请求头中,带到后端 server{ listen 80; server_name zh.drz.com; location / { proxy_pass http://172.16.1.7:80; proxy_set_header Host $http_host; } } ## 存在问题,后端无法获取真实用户IP,只能获取代理服务器IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; ## 透传用户的真实ip到web服务器 server{ listen 80; server_name zh.drz.com; location / { proxy_pass http://172.16.1.7:80; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ## 减少代理的配置 [root@lb01 nginx]# vim /etc/nginx/proxy_params ## 将域名放入请求头中,带到后端 proxy_set_header Host $http_host; ## 透传用户的真实ip到web服务器 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # http1.1版本 proxy_http_version 1.1; # 代理到web服务器的连接超时时间 proxy_connect_timeout 60; # web服务器回传数据给代理服务器的超时时间 proxy_send_timeout 60; # 代理服务器等待web服务器的响应时间 proxy_read_timeout 60; # 开启缓冲区 proxy_buffering on; # 请求头缓冲区的大小 proxy_buffer_size 32k; # 开启4个缓冲区,每个缓冲区大小为128k proxy_buffers 4 128k; ## 代理配置文件 [root@lb01 nginx]# vim /etc/nginx/conf.d/proxy.conf server{ listen 80; server_name zh.drz.com; location / { proxy_pass http://172.16.1.7:80; include /etc/nginx/proxy_params; } }
这篇关于Nginx反向代理服务的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-13用Nginx防范DDoS攻击的那些事儿
- 2024-12-13用Terraform在AWS上搭建简单NGINX服务器指南
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享