最近复习反向***的时候可谓几经波折,基本知识可以看我另外一篇https://blog.nowcoder.net/n/e0528dbb55024ee1834189e979db78f2
Nginx做反向***的具体配置如下

server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm index.php;
         #   proxy_pass  http://10.50.2.129/;
        #    proxy_set_header Host $host;
        #    proxy_set_header X-real $remote_addr;

        }
        location  /txt/ {
           # root   html;
          #  index  index.html index.htm index.php;
            proxy_pass  http://10.50.2.129/;
            proxy_set_header Host $host;
            proxy_set_header XRealIP  $remote_addr;

        }
}

然后就访问10.50.2.133,看看是不是能成功到后端服务器10.50.2.129,后端服务器我用Apache
需注意的点是保证能够互相通信,并访问,防火墙策略记得允许
然后查看Apache的日志,看看访问的源地址是否为客户端访问的地址,如果不是或者配置完访问失败的问题,那就看我总结的如下原因:
1.在Nginx***服务器这里,配置时proxy_set_header后面跟的名字注意下划线,最好用‘-’这个来代替,如果一定要用下划线那就记得加参数underscores_in_headers on;
2.$$remote_addr这些不要写成,我就把钱前面的符号写成@了
3.在后端服务器中,需要获取这个重定义的头部,我在Apache的配置文件中这样改

<IfModule log_config_module>
    LogFormat "%{XRealIP}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%{XRealIP}i %l %u %t \"%r\" %>s %b" common
    <IfModule logio_module>
      LogFormat "%{XRealIP}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
    CustomLog "logs/access_log" common
</IfModule>

就是里面的XRealIP就是我改的。格式不写错即可