windows server 下iis, nginx 代理 负载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows server 下iis, nginx 代理 负载相关的知识,希望对你有一定的参考价值。

  之前用.net做的网站,都是用iis ,现在应为一些需求 需要使用到nginx 配合使用,不多说,来实在的!

 

一、nginx 相关配置 自行百度吧 网上很多 。

  demo:

技术分享图片
 1 upstream web_www{
 2         server 127.0.0.1:5006;
 3         server 192.168.1.1:5006;# 可以配置权重 访问方式
 4                  #可以更多个    
 5     }
 6     server { 
 7         listen       80;
 8         server_name  xxx.domain.com;#域名
 9 
10        #如果是防止爬虫抓取的使用
11          if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot") 
12         { 
13         return 403; 
14         } 
15 
16         location / { 
17                   proxy_set_header X-Real-IP $remote_addr;
18                   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
19                   proxy_set_header Host $http_host;
20                   proxy_set_header X-NginX-Proxy true;
21                   proxy_pass http://web_www;
22                    
23                   proxy_redirect off;
24                   client_max_body_size    20m;  
25         }
26         root   html;  
27         index  index.aspx;  
28      
29         
30         error_page   500 502 503 504  /50x.html;
31         location = /50x.html {
32             root   html;
33         } 
34      
35     }
View Code

  

  

二、nginx 启动不成功:

  如果服务器已经安装了iis ,想使用nginx 可能遇到各种坑,各种80占用 nginx启动不成功, 注意查看nginx的logs下的错误信息

可能是配置错误导致启动不成功,

  例如:如果是第一行错误,一般第一行是注释掉的不会出问题,那么应该是包含bom格式的编码

     如果出现  bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions) 那基本上就妥妥的是80端口占用了

解决方法是a.  telnet 127.0.0.1 80  然后回车 应该有提示 

            1 如果是iis占用会有  这样样  HTTP/1.1 400 Bad Request  Content-Type: text/html; charset=us-ascii      Server: Microsoft-HTTPAPI/2.0 之类的  停用iiis 试试

            2 如果依然不行 停止 服务 iis admin 试试

       b.  netstat -aon  | findstr  "80"   在 tasklist  发现是  有个id 是4的 那就是 system这个进程了  解决方法是  :  

            1  如果有安装sql数据库 停用报表服务   ,

            2 如果依然不行  打开注册表 运行 输入regedit 找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP 修改项start 将3改为0 

    至此 基本上可以解决 ,解决方法顺序根据情况来

 

                  

        

 

  


以上是关于windows server 下iis, nginx 代理 负载的主要内容,如果未能解决你的问题,请参考以下文章

windows server 下iis, nginx 代理 负载

windows server 2003下配置IIS服务器

windows Server2012 IIS配置安装

Web Server 在iis下部署php网站在iis下

Windows 2008 server IIS 7 中开启CGI, ISAPI

windows server 2008下IIS反向代理设置 遇到的小坑