用 nginx 反向代理解决windows server 2003 服务器上 iis6.0与tomcat 7.0 共用 80 端口 的问题

时间:2024-04-09 11:40:36

背景 :

iis上挂着公司的主页,用的是80端口, 我做了一个微信小程序的后台用tomcat作为服务器,微信小程序访问后台强制使用80端口,所以问题产生了,80端口占用问题。一开始用到的是isapi_redirect-1.2.27.dll来进行配置,各种配置之后,还是端口占用,重复操作后放弃!!!

正题:

一、下载nginx

   网址:http://nginx.org/en/download.html

   找一个适合自己服务器的版本,本人下载的是nginx-1.15.2版本,

  1.安装nginx

       解压下载的nginx,打开文件夹,找到nginx.exe 双击运行,这时候会一闪而过,其实是已经安装好了。

  2.配置:

   说明:80端口必须留给nginx使用,具体配置在下方说明

         2.1配置iis

             上面提到iis挂的域名为www.xxxooo.cn 原来端口为80,修改端口号为81(你愿意修改成啥就是啥)。

              打开Internet信息服务管理,右击80端口占用网站选择“属性”,如下图,修改端口为81.确定即可。

用 nginx 反向代理解决windows server 2003 服务器上 iis6.0与tomcat 7.0 共用 80 端口 的问题

         

             2.2配置tomcat

                小程序后台域名为www.sssbbb.cn 原来端口为8080,端口修改为82。

               打开tomcat的conf下的server.xml打开,只需要修改一下内容(红色):

                <!--端口号一定要与下文中nginx配置的端口号一致-->

               <Connector port="82" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

                  在<Host></Host>标签内部,在这个标签内部,在这个标签内部,在这个标签内部,别错了赖我哈。。。加上如下内容,

                 <Context path = "" docBase = "D:/你项目的路径"  />

                以上tomcat配置完成

                

 

         2.3配置nginx

           打开D:\nginx-1.15.2\conf找到nginx.conf文件txt方式打开进行配置,配置代码如下:

       重要:一下代码为了看着方便已经把注释全部去掉,红色主要修改内容!!!

     

worker_processes  1;
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
     keepalive_timeout  65;

    server {
        listen       80;#监听80请求
        server_name  www.xxxooo.cn;#代理iis上的域名

        location / {
             proxy_pass   http://www.xxxooo.cn:81;#请求转发到实际的端口号为81
        }
        }
     
        server {
        listen       80;
        server_name  www.sssbbb.cn;#代理tomcat下的域名

        location / {
             proxy_pass   http://www.sssbbb.cn:82;#请求转发到实际的端口号为82
        }
        
  
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

      以上nginx配置完成!!

     3.重启

        3.1重启iis:

             win+r 输入cmd 回车,

              关闭iis服务:net stop iisadmin /y

             启动iis服务:net start iisadmin

             启动w3svc:net start w2svc

         3.2重启tomcat:不想说了

         3.3重启nginx:

             win+r 输入cmd 回车,

           用cd命令进入到 D:\nginx-1.15.2下

           输入nginx.exe回车,此时会一闪而过,打开任务管理器会有如下两个进程,表示已经启动了(如果没有,那么你就要看               第二步了),如下图:

              

用 nginx 反向代理解决windows server 2003 服务器上 iis6.0与tomcat 7.0 共用 80 端口 的问题

         

重启后分别访问www.xxxooo.cn、www.sssbbb.cn都是可以访问的,说明你成功了。

 

but、but、but!!!因为有些事情你就算是按部就班的做了也不尽人愿,如果你出现以下情况,请对症下药!!

 

二、80端口的调皮

我们就算是按照以上步骤调试完毕了,有可能会出现80端口被占用,占用着PID是4,也就是SYSTEM占用的,恶心,呕,因为停不掉啊,不要紧,别慌,咱们又简单粗暴地良药:

药方:

cmd下输入regedit打开注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP

 

用 nginx 反向代理解决windows server 2003 服务器上 iis6.0与tomcat 7.0 共用 80 端口 的问题

       找到如上图的start,右键,将原值“3”改为“0”,

     用 nginx 反向代理解决windows server 2003 服务器上 iis6.0与tomcat 7.0 共用 80 端口 的问题用 nginx 反向代理解决windows server 2003 服务器上 iis6.0与tomcat 7.0 共用 80 端口 的问题

 

 

 

 

 

 

 

修改完毕后点击确定,必须要重启电脑,如果是服务器不在身边那么一定要注意,不要点错成关机了,如果关机了只能去机房手动开机了,cmd命令给你了:shutdown -r,这个是重启电脑的命令,快说我细心,快!!!

重启后,然后重启你的iis、tomcat、nginx,一定要看看你的网站起来了没有,起来了,一般就不会有什么问题了,总结完毕。

如         有       不      对      请      斧    正    !!!

qq:513427762