简化拓扑如图

nginx + IIS 反向代理

我们这里只简单为描述原理来说明反向代理的过程

nginx + IIS 反向代理

 

前端nginx反向代理true IIS server

 

nginx反向代理配置代码如下。这里我只摘取其中一server,主要在header头,当后端只有一台IIS服务器且运行多个虚拟主机的时候适用。

server {
        listen       80;
        server_name  site1.cxsz.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_redirect off;
            proxy_set_header host site1.cxsz.com;
            proxy_set_header x-real-ip $remote_addr;
            proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
            proxy_pass http://192.168.110.137;

        }

我们访问并抓包瞅瞅

因为前面做了nslookup解析,所以我们首先刷新client端dns,同时注意,APP拿dns顺序,首先是高速缓存,hosts,文件,然后是自己配置的dns

我们截取抓包内容看看

nginx + IIS 反向代理

我们可以看到响应头里的host,是后端IIS虚拟server的地址。

 

此时一个简单的反向代理设置成功

end!