专栏首页波波烤鸭Nginx实战操作-反向代理

Nginx实战操作-反向代理

  本文我们来给大家介绍下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;   
  }
}

测试即可

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • NIO之缓冲区【直接和非直接缓冲区】

      字节缓冲区跟其他缓冲区类型最明显的不同在于,它们可以成为通道所执行的 I/O 的源头和/或目标。其实发现通道只接收ByteBuffer作为参数这个将Chan...

    用户4919348
  • Netty编解码之ProtoBuf案例二

      前面我们介绍了Protobuf的基本使用,但是我们是一个POJO对象创建一个proto文件,那么在实际环境中将要创建多个文件,会非常的不方便,本文我们来看看...

    用户4919348
  • Vue教程06(v-if和v-for指令)

      本文我们来介绍下v-if,v-show和v-for指令,也就是最基础的流程控制和循环处理。

    用户4919348
  • Nginx Websocket配置

    剑行者
  • nginx搭建 负载均衡

    配置/usr/local/nginx/conf/nginx.conf的http,配置vhost虚拟主机目录,然后配置vhost下的比如LB.conf文件。

    用户1499526
  • Nginx配置文件nginx.conf中文详解

    老七Linux
  • 脑机接口与深度学习

    脑机接口(BCI)是一种系统,可将受试者(人类或动物)的大脑活动模式提取并转换为用于交互式应用程序的消息或命令。脑活动模式是通过脑电图(EEG)获得的信号。

    脑机接口社区
  • 防火墙相关概念讲解

    包过滤是防火墙的基本功能,包过滤防火墙本质上是一个特殊的路由器,通过检查数据的五元组(源IP地址、目的IP地址、协议号、源端口、目的端口)来丢弃一部分网络流量,...

    java达人
  • Excel公式练习72: 提取大写字母创建缩写

    导语:本次的练习整理自myspreadsheetlab.com,可以很好的帮助我们练练手!

    fanjy
  • python3.7成功安装dlib库(亲

    不知道为什么python3.7版本安装dlib不能直接用pip,真的超级麻烦。然后看了其他一些博客感觉挺复杂的,boost居然也要设置环境变量,而且问题很多。

    py3study

扫码关注云+社区

领取腾讯云代金券