(转)IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容...
from :http://www.cnblogs.com/wuyou/p/3455619.html
環境:
windows?server?2003,IIS6服務器,Tomcat7服務器
域名有幾個:
以下是使用IIS的域名:
http://www.formuch.com/
http://www.formuch.cn/
http://www.formuch.net/
要使用Tomcat的域名:http://www.huilianvisa.com/??????http://huilianvisa.com/
問題:
該臺VPS里面已經有好幾個網站了(上面已給出),但是都是用IIS掛起來的。而我們開發了一個J2EE架構的網站,使用tomcat作為服務器。大家都知道,IIS既然已經用了80端口,那我的tomcat就不能用80端口了。這樣一來,我們J2EE的網站必須在域名后加上8080作為域名了(http://www.huilianvisa.com:8080/),這顯然不符合要求。
于是我從網上尋找資料,他們一部分人用的是?IIS與Tomcat的橋接器?解決問題的,但是我操作了幾個小時都沒有解決,于是我尋找另外一個解決方案,后來想到Nginx有一個反向代理的功能,能將請求轉發到本地的另外一些服務器。于是問題的解決方案為:使用Nginx反向代理方式使IIS和Tomcat兼容起來。
?
步驟:
首先確認tomcat和IIS兩個服務器沒有準確無誤的運行起來。
下載Nginx,版本只要在1.1以上基本都行。
①修改IIS的所有網站項目的端口,修改為81(只要不是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.huilianvisa.com"> ? ??????<Realm?className="org.apache.catalina.realm.LockOutRealm"> ? ????????<Realm?className="org.apache.catalina.realm.UserDatabaseRealm" ???????????????resourceName="UserDatabase"/> ??????</Realm> ? ??????<Host?name="www.huilianvisa.com"??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.formuch.com; ? ????????location?/?{ ?????? proxy_pass???http://www.formuch.com:81; ????????} ? ????} ? ????server?{ ????????listen???????80; ????????server_name??www.formuch.net; ? ????????location?/?{ ?????? proxy_pass???http://www.formuch.net:81; ????????} ????} ? ????server?{ ????????listen???????80; ????????server_name??www.formuch.cn; ? ????????location?/?{ ?????? proxy_pass???http://www.huilianvisa.com:81; ????????} ????} ? ????server?{ ????????listen???????80; ????????server_name??www.huilianvisa.com; ? ????????location?/?{ ?????? proxy_pass???http://www.huilianvisa.com:82; ????????} ????} ? ????server?{ ????????listen???????80; ????????server_name??huilianvisa.com; ? ????????location?/?{ ?????? proxy_pass???http://www.huilianvisa.com:82; ????????} ????} } ? |
Listen:Nginx監聽的端口(80),這里不要改
server_name:Nginx監聽的域名。
proxy_pass:要轉發到的地址。
④打開IIS服務器,再打開Tomcat服務器,再打開Nginx服務器,訪問對應的域名,即Nginx配置中的server_name,記得不需要加端口!因為Nginx會幫你訪問這些網站。
整個配置就完成了。
總結
以上是生活随笔為你收集整理的(转)IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 帆布包推广文案29句
- 下一篇: Nginx —— 检查配置文件ngi