(转)IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容...
from :http://www.cnblogs.com/wuyou/p/3455619.html
環(huán)境:
windows?server?2003,IIS6服務(wù)器,Tomcat7服務(wù)器
域名有幾個(gè):
以下是使用IIS的域名:
http://www.formuch.com/
http://www.formuch.cn/
http://www.formuch.net/
要使用Tomcat的域名:http://www.huilianvisa.com/??????http://huilianvisa.com/
問(wèn)題:
該臺(tái)VPS里面已經(jīng)有好幾個(gè)網(wǎng)站了(上面已給出),但是都是用IIS掛起來(lái)的。而我們開(kāi)發(fā)了一個(gè)J2EE架構(gòu)的網(wǎng)站,使用tomcat作為服務(wù)器。大家都知道,IIS既然已經(jīng)用了80端口,那我的tomcat就不能用80端口了。這樣一來(lái),我們J2EE的網(wǎng)站必須在域名后加上8080作為域名了(http://www.huilianvisa.com:8080/),這顯然不符合要求。
于是我從網(wǎng)上尋找資料,他們一部分人用的是?IIS與Tomcat的橋接器?解決問(wèn)題的,但是我操作了幾個(gè)小時(shí)都沒(méi)有解決,于是我尋找另外一個(gè)解決方案,后來(lái)想到Nginx有一個(gè)反向代理的功能,能將請(qǐng)求轉(zhuǎn)發(fā)到本地的另外一些服務(wù)器。于是問(wèn)題的解決方案為:使用Nginx反向代理方式使IIS和Tomcat兼容起來(lái)。
?
步驟:
首先確認(rèn)tomcat和IIS兩個(gè)服務(wù)器沒(méi)有準(zhǔn)確無(wú)誤的運(yùn)行起來(lái)。
下載Nginx,版本只要在1.1以上基本都行。
①修改IIS的所有網(wǎng)站項(xiàng)目的端口,修改為81(只要不是80和跟其他端口不沖突都可),因?yàn)槲覀兊膎ginx服務(wù)器要占用80端口。
?
②設(shè)置tomcat的配置文件:server.xml,打開(kāi):
重點(diǎn)在于配置紅色部分:包含端口(82),監(jiān)聽(tīng)的域名。(這里我已經(jīng)把注釋全去掉了,省事,這是整個(gè)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> ? |
?
③來(lái)到nginx的conf目錄,打開(kāi)nginx.conf,對(duì)里面修改如下:
(這里主要是添加轉(zhuǎn)發(fā)的域名,對(duì)于IIS我們?nèi)D(zhuǎn)發(fā)到對(duì)應(yīng)域名加上81端口,對(duì)于tomcat的我們?nèi)由?2端口,其中Nginx監(jiān)聽(tīng)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; ? #這里是影院網(wǎng)站 ? ????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監(jiān)聽(tīng)的端口(80),這里不要改
server_name:Nginx監(jiān)聽(tīng)的域名。
proxy_pass:要轉(zhuǎn)發(fā)到的地址。
④打開(kāi)IIS服務(wù)器,再打開(kāi)Tomcat服務(wù)器,再打開(kāi)Nginx服務(wù)器,訪(fǎng)問(wèn)對(duì)應(yīng)的域名,即Nginx配置中的server_name,記得不需要加端口!因?yàn)镹ginx會(huì)幫你訪(fǎng)問(wèn)這些網(wǎng)站。
整個(gè)配置就完成了。
總結(jié)
以上是生活随笔為你收集整理的(转)IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 帆布包推广文案29句
- 下一篇: 兔年是哪年