背景:一台vps服务器上需要同时运行两个网站,节(老)省(板)成(扣)本,用一个服务器。一个是已经建好的官网(iis管理一键安装的PHP网站),另一个是java 项目网站(jeecg框架修改的商城项目)。

问题:之前的官网已经运行着了,并且占用着了80端口,然而新的网站也需要用到80端口,(你不可能让用户登录商城网站,网址后面手动加端口号吧!)

解决:使用Nginx反向代理方式使两者兼容

解决步骤:

环境:Windows server 2003 IIS7  Tomcat8

(后来升级成Windows server 2003 IIS8同样可用)

IIS使用的域名:www.abc.com

要使用tomcat的域名:www.123.cn

首先IIS和Tomcat准确无误的运行起来

下载Nginx,版本只要在1.1以上基本都行。官网下载地址

①修改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.abci.com;

location / {

proxy_pass   http://www.abc.com:82;

}

}

#可继续按格式向下添加网址

}

Listen:Nginx监听的端口(80),这里不要改

server_name:Nginx监听的域名。

proxy_pass:要转发到的地址。

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

搞定,外网访问测试下吧

iis和tomcat同时运行,完美解决80端口冲突问题的更多相关文章

  1. 【tomacat集群】Linux或 window配置多个Tomcat同时运行-完美解决-未来星开发团队-费元星

    Linux系统下怎样配置多个Tomcat同时运行呢,首先修改变量为第一个tomcat,然后修改第二个tomcat启动的脚本 如何在同一系统里同时启动多个Tomcat    http://www.cnb ...

  2. Tomcat配置域名、ip访问及解决80端口冲突

    1.先在tomcat下的conf下找到server.xml文件,用记事本打开后,首先对端口号进行修改,以前一直以为8080是默认的端口号,其实默认的端口号是80 <Connector port= ...

  3. apache与IIS共用80端口冲突解决方法

    如果同一台电脑安装了apache和iis,会提示80端口冲突,如何解决apache与iis 80端口冲突的问题呢,并且同时使用apache和iis 将apache设为使用80端口,IIS使用其它端口, ...

  4. apache和IIS共存,服务器对外统一使用80端口

    apache和IIS共用80端口为了PHP与ASP各自的执行效率,要在服务器上安装iis与Apache,但是无法同时使用80端口,否则其中必定有一个启动不了.让它们共存的并且访问网站不需要加端口号,解 ...

  5. Atitit. 解决80端口 System 占用pid 4,,找到拉个程序或者服务占用http 80服务

    Atitit. 解决80端口  System 占用pid 4,,找到拉个程序或者服务占用http服务 这个是http.sys系统服务占用了... net stop http ,三,没法儿终止 1. 寻 ...

  6. IIS服务器和xampp中的appche服务器端口冲突解决办法

    今天在启动xampp中的appche的时候,发现以前能起来的现在起不来了.想到可能是最近配置的系统自带的IIS服务器把appche的端口给占用了. (appche和iis的默认端口号都是:80:) 问 ...

  7. (7) 将tomcat HTTP连接器启动在80端口(jsvc使用详解)

    让tomcat在80端口上运行 法一: 修改连接器的端口8080为80 <Connector port="8080" protocol="HTTP/1.1" ...

  8. 亲测有效,解决80端口被svchost.exe进程占用的问题,网上的方法不行,可以试试这个

    先说网上无效的方法(个人尝试无效,不具有代表性): 网上第一个说法:把IIS给关了,Windows10系统本身IIS是处于禁用状态的,并且没有额外安装IIS和启动IIS. 网上第二个说法:和SQL S ...

  9. window 和 linux 环境下杀死tomcat进程——也可以解决其他端口被占用的问题

    1.应用场景 在Windows或者linux操作系统中,我们在启动一个tomcat服务器时,经常会发现8080端口已经被占用的错误,而我们又不知道如何停止这个tomcat服务器. 2.window环境 ...

随机推荐

  1. poj1155 依赖背包

    /* 依赖背包 dp[i][j]表示i结点为根的树选择j个用户时的最大剩余费用 即背包容量是j,价值是最大费用 */ #include<iostream> #include<cstr ...

  2. 登录界面之Axure原型制作

    *****登录界面制作步骤***** 1.背景色:需要设定的背景色不知道色值,可以使用截图工具截取一小块粘贴到axure页面, 点击页面样式中的背景色左上角的取色器点击一下该色块,即可将背景色全部填充 ...

  3. Windows Internals 笔记——线程局部存储区

    1.由于C/C++运行库是在多线程应用程序出现的许多年前设计的,因此运行库中的大多数函数是为单线程应用程序设计的. 2.当应用程序第一次调用_tcstok_s的时候该函数将传入的字符串地址保存在它自己 ...

  4. Django的Session存储Redis环境配置

    第一步:在项目目录下的settings.py中MIDDLEWARE中加上中间件: # session中间件Django项目默认启用Session 'django.contrib.sessions.mi ...

  5. idea svn配置报错:Can't use Subversion command line client:svn

    1. 在Intellij IDEA里checkout东西时出先这个错误提示:Can't use Subversion command line client:svnSubversion command ...

  6. C# 位移运算

    一:“<<”和“>>”运算符用于执行移位运算,分别称为左移位运算符和右移位运算符.对于X<<N和X>>N形式的运算,含义是将X向左或向右移动N位,得到的 ...

  7. mycat配置文件备份

    schema.xml <?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd&q ...

  8. php处理IOS图片旋转

    $picAddr = $url; $exif = exif_read_data($picAddr); $image = imagecreatefromjpeg($picAddr); if($exif[ ...

  9. 【AtCoder】ARC072

    ARC072 C - Sequence 直接认为一个数是正的,或者第一个数是负的,每次将不合法的负数前缀和改成+1正数前缀和改成-1 #include <bits/stdc++.h> #d ...

  10. 【BZOJ】3730: 震波

    原题链接 题解 查询距离一个点距离在一定范围内的点,直接点分树,前缀和用树状数组维护 答案是当前重心距离不超过k - (x到重心距离)的点的前缀和,减去在x所在子树中,距离重心不超过k - (x到重心 ...