Nginx实战操作-反向代理
2020-06-24 04:16
99 查看
本文我们来给大家介绍下Nginx的反向代理的实现。
反向代理
结构图
反向代理的核心是不想将我们内部的服务直接暴露给客户端。
Nginx可以作为我们反向代理服务器使用,具体怎么操作呢?
其实nginx反向代理的指令不需要新增额外的模块,默认自带
proxy_pass指令,只需要修改配置文件就可以实现反向代理。
Nginx反向代理实战
1.创建一个web服务
你可以直接启动一个Tomcat服务,放置简单的jsp文件,也可以通过开发工具启动一个服务,我们为了操作代码方便就通过IDE创建一个简单的web服务来处理请求
启动服务访问:
表示我们的服务是OK的
2.配置Nginx反向代理
我们可以单独添加一个反向代理的配置文件,然后我们在nginx.conf中通过 include 来引入即可
然后我们在nginx.conf的同级目录下创建extra文件夹并在其中创建proxy_demo.conf,内容如下
server{ listen 80; server_name localhost; location / { proxy_pass http://192.168.12.1:8081; } }
3.测试访问
检测并重新加载配置文件。
访问 http://192.168.12.120/user/query
这样就实现了一个简单的反向代理的配置,
代理修改请求方式
客户端已GET方式发送请求到NGINX中,NGINX转发请求也会以GET方式转发,其实代理服务器可以修改请求方式,实现也非常简单,我们只需要在配置文件中 添加
proxy_method POST即可
server{ listen 80; server_name localhost; location / { proxy_pass http://192.168.12.1:8081; proxy_method POST; } }
来看效果
效果实现
获取真实IP地址
通过反向代理转发的节点无法获取客户端的真实IP,怎么解决呢,修改nginx的代理配置文件
server{ listen 80; server_name localhost; location / { proxy_pass http://192.168.12.1:8081; proxy_method POST; proxy_set_header Host $host; #获取客户端的ip地址设置到header中 proxy_set_header X-Real-IP $remote_addr; #获取所有转发请求的ip信息列表 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
测试即可
好了~反向代理的内容就介绍到这里,有疑问的欢迎留言
相关文章推荐
- nginx实战操作之反向代理tomcat
- 详解nginx实现ssl反向代理实战
- 实战录 | 今天聊聊Nginx反向代理使用
- 实战docker,构建nginx反向代理tomcat,学习link和docker-compose
- Nginx实战之反向代理WebSocket的配置实例
- nginx实现ssl反向代理实战
- nginx实战(四)反向代理配置缓存及负载均衡
- nginx实现ssl反向代理实战
- Nginx实战之反向代理WebSocket的配置实例
- 业界最有价值Nginx反向代理实战博文荟萃
- nginx实现ssl反向代理实战
- Nginx反向代理服务器入门操作与配置
- nginx 配置反向代理,负载均衡实战解析
- Nginx实战(五) 反向代理
- 业界最有价值Nginx反向代理实战博文荟萃
- 搭建nginx反向代理用做内网域名转发
- Ubuntu下nginx设置反向代理
- nginx反向代理服务器
- nginx 反向代理,返回404