Nginx之反向代理

什么是反向代理

  1. 正向代理 – 客户端配置
    正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
    正向代理简单点说就是科学上网。
    正向代理
  2. 反向代理 – 服务端配置
    反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
    反向代理

Nginx实现反向代理

当两个域名同时绑定一台Nginx服务器时,根据用户访问不同的域名给用户显示不同的页面内容。
假如两个域名为:www.sian.com.cn和www.sohu.com
Nginx服务器使用的虚拟机的ip为:192.168.101.3
Nginx反向代理

实现步骤:

  1. 安装两个tomcat,分别运行在8080和8081端口
  2. 启动两个tomcat
  3. 反向代理服务器的设置(修改/usr/local/nginx/conf/nginx.conf):
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    upstream tomcat1 {
    server 192.168.25.148:8080;
    }
    server {
    listen 80;
    server_name www.sina.com.cn;

    #charset koi8-r;

    #access_log logs/host.access.log main;

    location / {
    <!-- 使用的是upstream的名字 -->
    proxy_pass http://tomcat1;
    index index.html index.htm;
    }
    }

    upstream tomcat2 {
    server 192.168.25.148:8081;
    }
    server {
    listen 80;
    server_name www.sohu.com;

    #charset koi8-r;

    #access_log logs/host.access.log main;

    location / {
    proxy_pass http://tomcat2;
    index index.html index.htm;
    }
    }

通过配置两个不同的service并配置upstream节点。

  1. 使用./nginx -s reload命令重新加载配置文件
  2. 在本地配置域名映射(修改host文件)
    在hosts文件中添加域名和ip的映射关系
    192.168.25.148 www.sina.com.cn
    192.168.25.148 www.sohu.com

操作完成后,访问www.sina.com.cn时将转跳到tomcat1容器并且返回tomcat1中的页面

总结:

  1. Nginx反向代理技术实现了在一台服务器中存在多个网站。
  2. Nginx反向代理技术核心配置内容就是在/nginx/conf/nginx.conf文件下添加一个service节点,并配置对应的upstream即可。
  3. Nginx反向代理服务器也可以实现负载均衡。

####感谢阅读本博客。

####欢迎关注我的博客:https://li-weijian.github.io/

####欢迎关注我的CSDN:https://blog.csdn.net/qq352642663

####需要联系请加QQ:352642663

####欢迎联系我共同交流