什么是反向代理及其应用

反向代理(Reverse Proxy)是指以反向代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时反向代理服务器对外就表现为一个服务器。

在内网IP为192.168.1.100服务器上部署了某个Apache WEB服务,用来运行PHP程序,该服务的端口开在了8080

则可通过如下配置来实现一个反向代理。

Apahce反向代理配置

#testproxy.cn
<VirtualHost *:80>
    ServerName testproxy.cn
    <IfModule mod_proxy.c>
        #Reverse Proxy(反向代理)
        ProxyRequests Off
        ProxyVia On
        <Proxy *>
            #注意Deny,Allow之间不要有空格  
            Order Deny,Allow  
            Deny from all
            Allow from all
        </Proxy>
        #配置跟代理,必需放在最后面,否则其他二级访问的反向代理会失败 下面要成对出现
        ProxyPass           / http://192.168.1.100:8080/
        ProxyPassReverse    / http://192.168.1.100:8080/
        #若此处项目名称 /demo/ 代理为 / 跟目录访问,session会丢失,需要配置如下信息  
        #ProxyPassReverseCookiePath /demo/
    </IfModule>
</VirtualHost>

Nginx反向代理配置

http {
    ...
    upstream myservice {
        server 192.168.1.100:8080;
        keepalive 64;
    }
    ...
    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name mix.sobird.me;
        location / {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-Nginx-Proxy true;
            proxy_set_header Connection "";
            proxy_pass http://myservice;
        }
    }
}

参考

这篇文章目前没有评论。

回复

(必填项)

(必填项)

(可选)