Nginx 反向代理

1、简述

反向代理的被代理对象为服务器,用户只对代理服务器发出请求,然后由代理服务器转发到对应的被代理服务器中去,用户此时是不知道自己的请求到底是被哪个被代理服务器处理的。而正向代理的被代理对象是用户,用户向代理服务器发出请求,由代理服务器转发这个请求到对应的服务器中去,例如常见的 VPN 就是典型的正向代理,此时用户是知道自己将要访问的服务器地址,只不过是由代理服务器代为转发。

 

 

 

 

2、Nginx 配置反向代理(简单例子)

在此之前看看官方文档是如何示例配置反向代理的,文档链接

我的例子采用 Nginx 作为 Http 服务器、Tomcat 作为 Web 服务器,让用户通过 Nginx 访问到 Tomcat

本例子采用 Docker 来作为辅助实现,机器 ip 为 192.168.0.106

1)首先拉取 Nginx 和 Tomcat 的镜像后创建容器,端口映射就保持原默认端口不变即可

2)找到 Nginx 的配置文件打开。我使用的是 Docker 容器,使用 docker exec -it <Container ID> /bin/bash 进入容器内,然后找到 nginx.conf,其路径在 /etc/nginx/nginx.conf,首先先备份一份以防万一。再使用 vim 进入配置文件,如无 vim 则需要 apt-get 来进行安装参考阅读

3)修改配置文件,给 Http 块中添加一个 server 块里面添加一个 location 来配置请求转发

4)通过浏览器访问 192.168.0.106 即可看到 Tomcat 默认页面

 

 

 

 

 

 

 

3、location 中 uri 的匹配

 

 

 

 

 

 

4、其他

上面的例子只是做了一个最简单的配置,其实 location 中还可以做很多操作,例如替换用户请求的 uri 、绑定 IP 使得只对某一 IP 的用户进行处理等等,这些需要用到其他的一些关键字,在官网示例中均有简单给出示例和解释,强烈建议去官方文档先看看。另外给出一个参考阅读

posted @ 2020-05-03 16:59  qwerity  阅读(166)  评论(0编辑  收藏  举报