iis和tomcat同時執行,完美解決80埠衝突問題
背景:一臺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會幫你訪問這些網站。
搞定,外網訪問測試下吧
相關文章
- 安裝vcenter server埠 80 和 IIS 衝突Server
- JavaScript中解決jQuery和Prototype.js同時引入衝突問題JavaScriptjQueryJS
- Tomcat修改80埠,埠被佔用,System佔用80埠問題解決Tomcat
- windows解決埠衝突Windows
- JAR衝突問題的解決JAR
- git 解決版本衝突問題Git
- onMeasure簡單方法 完美解決ListView與ScollView衝突問題!View
- 解決Oracle XDB與Tomcat等的8080埠的衝突OracleTomcat
- GO 問題之多版本衝突解決Go
- windows系統如何解決IIS佔用80埠的問題Windows
- Tomcat埠占用問題解決方法Tomcat
- Activemq和Rabbitmq埠衝突MQ
- Maven中解決依賴衝突的問題Maven
- 解決Oracle XDB的8080埠的衝突Oracle
- oracle客戶端同sap衝突的問題Oracle客戶端
- H5-Jquery和Vue同時使用衝突H5jQueryVue
- CentOS7安裝MySQL衝突和問題解決小結CentOSMySql
- aix 9090 埠與websphere5管理埠衝突解決AIWeb
- Android 解決BottomSheetDialog 拖曳衝突問題Android
- 如解決jquery與原生js衝突的問題jQueryJS
- wsl docker 和 ubuntu 衝突問題DockerUbuntu
- JAR衝突問題的解決以及執行狀態下如何檢視載入的類JAR
- 依賴衝突時的解決方法
- IIS與Apache共用80埠Apache
- Git Worktree:解決分支依賴衝突的問題Git
- less中解決CSS3的calc衝突問題CSSS3
- mysql驅動程式問題(安裝配置jive時碰到的):能否同時存在多個驅動程式呢,埠衝突了?MySql
- Git 解決衝突Git
- git 解決衝突Git
- 解決jquery和其他庫的衝突jQuery
- SVN衝突解決和注意事項
- VMware無法啟動/VMware和wsl衝突問題/VMware與Hyper-V衝突問題
- 解決gerrit commit後pull發生衝突的問題MIT
- 關於 OkHttp 依賴衝突問題的解決過程HTTP
- 解決app中多語音出現的衝突問題APP
- 解決echsop相容jquery(transport.js的衝突)的問題jQueryJS
- 利用觸發器解決更新主鍵衝突的問題觸發器
- mysql執行truncate drop 時卡死問題解決MySql