IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容

环境:

windows 7,IIS6服务器,Tomcat8服务器
域名有几个:
以下是使用IIS的域名(不是真实的,仅仅作为教程使用):
www.iis1.com
www.iis2.com
要使用Tomcat的域名:www.tomcat1.com www.tomcat2.com
问题:
该台VPS里面已经有好几个网站了(上面已给出),但是都是用IIS挂起来的。而我们开发了一个J2EE架构的网站,使用tomcat作为服务器。大家都知道,IIS既然已经用了80端口,那我的tomcat就不能用80端口了。这样一来,我们J2EE的网站必须在域名后加上8080作为域名了(http://www.tomcat1.com:8080/),这显然不符合要求。
于是我从网上寻找资料,他们一部分人用的是 IIS与Tomcat的桥接器 解决问题的,但是我操作了几个小时都没有解决,于是我寻找另外一个解决方案,后来想到Nginx有一个反向代理的功能,能将请求转发到本地的另外一些服务器。于是问题的解决方案为:使用Nginx反向代理方式使IIS和Tomcat兼容起来。
步骤:
首先确认tomcat和IIS两个服务器没有准确无误的运行起来。
下载Nginx,版本只要在1.1以上基本都行(我下载的是1.8.1)。
下载完毕后先讲其他所有占用80端口服务关掉,然后双击启动按钮图标,然后浏览器输入localhost 后出现nginx字段表示启动成功。
官方网址:http://nginx.org/en/download.html
这里写图片描述
1、修改IIS的所有网站项目的端口,修改为81(只要不是80和跟其他端口不冲突都可),因为我们的nginx服务器要占用80端口。
2、先找到tomcat目录,新建文件夹webapps_crm、webapps_ibeacon 与webapps同级,分别在新建的两个文件夹中创建一个空目录 ROOT (这里大写)
3、设置tomcat的配置文件:server.xml,打开:
其中:webapps_crm,webapps_ibeacon就是刚才创建的跟wabapps同级的目录名,
下面的做法是为了使用不同的域名访问不同 的项目。
我这里是两个域名访问两个项目,因此创建了两个host

<!-- 
    appBase:就是刚才创建的新文件夹,也可以使用webapps这个。
       name:就是需要进行绑定的域名
    docBase:就是需要访问的项目跟路径 例如项目文件名为:CRM  则这里填写/CRM
配置这个完成后可以将相应文件war包放到对应文件目录下,然后启动tomcat就可以再页面访问项目了,例如:输入:www.tomcat2.com:8080/项目名  会直接进入项目主页了,这里是虚拟域名,就不做截图展示了。(当然这里是配置的8080端口,如果单纯配置80端口就不需要输入端口号了,本文是为了整合,因此没有改成80端口)

 -->
<Host appBase="webapps_crm" autoDeploy="true" name="www.tomcat1.com" unpackWARs="true">
       <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log" suffix=".txt"/>
    <Context path="" docBase="/CRM" debug="0" reloadable="true"></Context>
</Host>   
<Host appBase="webapps_ibeacon" autoDeploy="true" name="www.tomcat1.com" unpackWARs="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log" suffix=".txt"/>
    <Context path="" docBase="/Records" debug="0" reloadable="true"></Context>
 </Host>

4、来到nginx的conf目录,打开nginx.conf,对里面修改如下:
(这里主要是添加转发的域名,对于IIS我们全转发到对应域名加上81端口,对于tomcat的我们全是8080端口,其中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.iis1.com;
        location / {
       proxy_pass   http://www.iis1.com:81;
        }
    }
 server {
       listen       80;
       server_name  www.iis2.com;
       location / {
      proxy_pass   http://www.iis1.com:81;
       }
    }
  server {
        listen       80;
        server_name  www.tomcat1.com;
        location / {
       proxy_pass   http://www.tomcat1.com:8080;
        }
    }
  server {
        listen       80;
        server_name  www.tomcat2.com;
        location / {
       proxy_pass   http://www.tomcat2.com:8080;
        }
    }
}

所有准备工作都准备完毕后,打开任务管理器进程,将nginx停止运行,然后右击nginx,以管理员身份运行,然后刷新任务管理器进程 ,会出现两个绿色的exe,此时表示服务已经启动。
这个时候你可以直接在浏览器输入域名,它会自动转发到你自己分配的页面。

注意点:tomcat启动第一次的时候可能不管用,没事,再次启动应该是没事了。我一般启动两次就不会有问题了。。。

以上便是所有的基本配置了,也是本人亲测成功的代码,希望对大家有帮助,同时也作为自己以后查阅的一份资料吧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在Nginx中,可以通过配置文件实现多个域名共用80端口的需求。首先,需要在nginx.conf文件中配置多个server块,每个server块对应一个域名。在每个server块中,使用listen指令指定监听的端口和server_name指令指定域名。然后,在每个server块中,使用location指令指定请求的路径和对应的根目录。这样,当访问不同的域名时,Nginx会根据配置文件中的server块进行转发。例如,可以配置两个server块分别监听demo.test.com和product.test.com,同时使用location指令指定对应的根目录。这样,当访问demo.test.com时,Nginx会将请求转发到/home/www/demo目录下,当访问product.test.com时,Nginx会将请求转发到/home/www/product目录下。\[1\]\[2\]同样的,可以配置两个server块分别监听books.summergao.com和test.summergao.com,同时使用location指令指定对应的根目录。这样,当访问books.summergao.com时,Nginx会将请求转发到/usr/local/summergao/front/books目录下,当访问test.summergao.com时,Nginx会将请求转发到/usr/local/summergao/front/test目录下。\[3\]这样,就实现了多个域名共用80端口的需求。 #### 引用[.reference_title] - *1* *2* [Nginx配置多个服务域名解析共用80端口](https://blog.csdn.net/weixin_44569100/article/details/126179849)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Nginx配置多个服务共用80端口](https://blog.csdn.net/qq_25231683/article/details/120762568)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值