当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Nginx正反向代理及负载均衡等功能实现配置代码实例

    栏目:Linux/apache问题 时间:2019-11-29 09:22

    这篇文章主要介绍了Nginx正反向代理及负载均衡等功能实现配置代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    系统环境:

    VirtualBox Manager

    Centos6.4

    nginx1.10.0

    IP对应的机器名:

    IP 机器名 角色名

    10.0.0.139 [elk] client

    10.0.0.136 [lvs-master] nginx server

    10.0.0.137 [kvm] web server 1

    10.0.0.111 [lvs-backup] web server 2

    一、正向代理

    1.1 环境介绍

    1.2 配置介绍

    Nginx server:(内网地址:10.0.0.136,外网地址:172.16.27.64)

    使用VirtualBox Manager虚拟出双网卡。

    [root@lvs-master conf.d]# ifconfig 
    eth0   Link encap:Ethernet HWaddr 08:00:27:30:56:99 
         inet addr:10.0.0.136 Bcast:10.255.255.255 Mask:255.0.0.0 
         inet6 addr: fe80::a00:27ff:fe30:5699/64 Scope:Link 
         UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
         RX packets:891978 errors:0 dropped:0 overruns:0 frame:0 
         TX packets:9509 errors:0 dropped:0 overruns:0 carrier:0 
         collisions:0 txqueuelen:1000 
         RX bytes:81841095 (78.0 MiB) TX bytes:13339058 (12.7 MiB) 
     
    eth1   Link encap:Ethernet HWaddr 08:00:27:55:4C:72 
         inet addr:172.16.27.64 Bcast:172.16.27.255 Mask:255.255.255.0 
         inet6 addr: fe80::a00:27ff:fe55:4c72/64 Scope:Link 
         UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
         RX packets:913671 errors:0 dropped:0 overruns:0 frame:0 
         TX packets:22712 errors:0 dropped:0 overruns:0 carrier:0 
         collisions:0 txqueuelen:1000 
         RX bytes:109369858 (104.3 MiB) TX bytes:1903855 (1.8 MiB) 
     
    lo    Link encap:Local Loopback 
         inet addr:127.0.0.1 Mask:255.0.0.0 
         inet6 addr: ::1/128 Scope:Host 
         UP LOOPBACK RUNNING MTU:16436 Metric:1 
         RX packets:36222 errors:0 dropped:0 overruns:0 frame:0 
         TX packets:36222 errors:0 dropped:0 overruns:0 carrier:0 
         collisions:0 txqueuelen:0 
         RX bytes:3899937 (3.7 MiB) TX bytes:3899937 (3.7 MiB) 
    [root@lvs-master conf.d]# cat zxproxy.conf 
    server { 
      listen    80;  #监听的端口 
      server_name 10.0.0.136; #server的内容地址,与client需要网络互通 
     
     
      resolver 172.16.5.1;  #DNS,这个是DNS,访问外网 
      location / { 
          proxy_pass http://$http_host$request_uri;  #$http_host和$request_uri是nginx系统变量,不需要替换,保持原样 
            } 

    Nginx client:

    只有一个内网网卡,通过访问Nginx server去访问internet,其实翻墙、肉鸡、之类的俗称就是这个原理。

    [root@kvm ~]# ifconfig 
    eth0   Link encap:Ethernet HWaddr 08:00:27:72:8C:3B 
         inet addr:10.0.0.137 Bcast:10.255.255.255 Mask:255.0.0.0 
         inet6 addr: fe80::a00:27ff:fe72:8c3b/64 Scope:Link 
         UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
         RX packets:1462448 errors:0 dropped:0 overruns:0 frame:0 
         TX packets:21130 errors:0 dropped:0 overruns:0 carrier:0 
         collisions:0 txqueuelen:1000 
         RX bytes:145119904 (138.3 MiB) TX bytes:2814635 (2.6 MiB) 
     
    lo    Link encap:Local Loopback 
         inet addr:127.0.0.1 Mask:255.0.0.0 
         inet6 addr: ::1/128 Scope:Host 
         UP LOOPBACK RUNNING MTU:16436 Metric:1 
         RX packets:60800 errors:0 dropped:0 overruns:0 frame:0 
         TX packets:60800 errors:0 dropped:0 overruns:0 carrier:0 
         collisions:0 txqueuelen:0 
         RX bytes:4831102 (4.6 MiB) TX bytes:4831102 (4.6 MiB) 
     
    [root@kvm ~]# wget www.baidu.com 
    --2016-06-08 13:02:08-- http://www.baidu.com/ 
    正在解析主机 www.baidu.com... 失败:域名解析暂时失败。   #无法访问百度 
    wget: 无法解析主机地址 “www.baidu.com” 
     
    [root@kvm ~]# export http_proxy=http://10.0.0.136:80 #设定环境变量,指定代理服务器的ip及端口 
     
    [root@kvm ~]# wget www.baidu.com   #可以成功访问百度了 
    --2016-06-08 13:08:15-- http://www.baidu.com/ 
    正在连接 10.0.0.136:80... 已连接。 
    已发出 Proxy 请求,正在等待回应... 200 OK 
    长度:未指定 [text/html] 
    正在保存至: “index.html.1” 
     
      [ <=>                         ] 99,762   --.-K/s  in 0.07s 
     
    2016-06-08 13:08:16 (1.36 MB/s) - “index.html.1” 已保存 [99762]