IIS和tomcat共用80端口(Nginx)(同一个服务器建立多个80端口网站的方法)—— Nginx反向代理

 

 

IIS和tomcat共用80端口(Nginx)
(同一个服务器建立多个80端口网站的方法)
—— Nginx反向代理

一台vps服务器上需要同时运行两个网站,节(老)省(板)成(抠)本,用一个服务器。一个是已经建好的官网(iis管理一键安装的ASP网站);另一个是Java 商城网站(Tomcat项目),也需要配置为80端口使用。

 之前的ASP官网已经运行着了,并且占用着了80端口;然而新的Java网站也要用到80端口,(你不可能让用户登录Java商城网站,网址后面手动加端口号吧!)。今天实际操作了一回让IIS和tomcat共用80端口,以下是具体步骤:

 

: 使用Nginx反向代理,将Java网站的域名的请求交给tomcat来处理。

原理

  使用Nginx反向代理方式使两者共同使用80端口。

 

环境

  Windows 2008R2, iis7,  Apache-Tomcat-8.5.27

  前提条件:已经正确安装了IIS和Tomcat网站; 且两个网站单独使用时,网站均可以正常运行。   

                  原IIS使用的域名是:www.abc.com;  新Tomcat网站要使用的域名是:www.123.cn。                    

 

配置方法 

下载Nginx,版本只要在1.1以上基本都行。 官网下载地址是:http://nginx.org/en/download.html

 ①修改IIS的所有网站项目的端口,修改为非80端口,因为我们的nginx服务器要占用80端口。

 

  ②设置tomcat的配置文件:server.xml,打开进行调整

   重点在于配置加粗部分:包含端口号(82),监听的域名。(这里我已经把注释全去掉了,省事,这是整个server.xml文件)      

<?xml version='1.0' encoding='utf-8'?>
 
<Server port="8005" shutdown="SHUTDOWN">
 
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JasperListener" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
 
  <GlobalNamingResources>
 
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>
 
  <Service name="Catalina">
 
    <Connector port="82" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8" />
 
 
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
 
 
    <Engine name="Catalina" defaultHost="www.123.cn">
 
      <Realm className="org.apache.catalina.realm.LockOutRealm">
 
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
 
      <Host name="www.123.cn"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
 
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />
 
<Context path = "" docBase = "d:/website/hlcg_war_exploded"  />
 
      </Host>
    </Engine>
  </Service>
</Server>

 

 ③接着来到nginx的conf目录,打开nginx.conf,对里面修改

(这里主要是添加转发的域名,对于IIS我们全转发到对应域名加上81端口,对于tomcat的我们全加上82端口,其中Nginx监听80端口)

  

#user  nobody;
worker_processes  1;
 
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
 
#pid        logs/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
 
http {
    include       mime.types;
    default_type  application/octet-stream;
 
    #access_log  logs/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
    keepalive_timeout  65;
 
    #gzip  on;
 
    server {
        listen       80;
        server_name  www.123.cn; 
        location / {
       proxy_pass   http://www.123.cn:81;
        } 
    }
 
    server {
        listen       80;
        server_name  www.abc.com; 
        location / {
       proxy_pass   http://www.abc.com:82;
        }
    }
 
  #可继续按格式向下添加网址
}

  Listen:Nginx监听的端口(80),这里不要改
       
server_name:Nginx监听的域名。
       proxy_pass:要转发到的地址。

 

④关闭这几个服务,然后重新打开(IIS服务、Tomcat、Nginx)。

 打开IIS服务器,再打开Tomcat服务器,再打开Nginx服务器,

 再访问对应的域名,即Nginx配置中的server_name,记得不需要加端口!因为Nginx会帮你访问这些网站。

 

搞定,外网访问测试下吧。

 

 

·

 

·

 

posted @ 2020-02-14 20:00  亟待!  阅读(1558)  评论(0)    收藏  举报
……