環(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/
問題:
該臺(tái) VPS 里面已經(jīng)有好幾個(gè)網(wǎng)站了(上面已給出),但是都是用 IIS 掛起來的。而我們開發(fā)了一個(gè) J2EE 架構(gòu)的網(wǎng)站,使用 tomcat 作為服務(wù)器。大家都知道, IIS 既然已經(jīng)用了 80 端口,那我的 tomcat 就不能用 80 端口了。這樣一來,我們 J2EE 的網(wǎng)站必須在域名后加上 8080 作為域名了( http://www.huilianvisa.com:8080/ ),這顯然不符合要求。
于是我從網(wǎng)上尋找資料,他們一部分人用的是?IIS 與 Tomcat 的橋接器 ?解決問題的,但是我操作了幾個(gè)小時(shí)都沒有解決,于是我尋找另外一個(gè)解決方案,后來想到 Nginx 有一個(gè)反向代理的功能,能將請(qǐng)求轉(zhuǎn)發(fā)到本地的另外一些服務(wù)器。于是問題的解決方案為:使用 Nginx 反向代理方式使 IIS 和 Tomcat 兼容起來。
?
步驟:
首先確認(rèn) tomcat 和 IIS 兩個(gè)服務(wù)器沒有準(zhǔn)確無誤的運(yùn)行起來。
下載 Nginx ,版本只要在 1.1 以上基本都行。
①修改 IIS 的 所有網(wǎng)站項(xiàng)目的端口,修改為 81 (只要不是 80 和跟其他端口不沖突都可),因?yàn)槲覀兊? nginx 服務(wù)器要占用 80 端口。
?
②設(shè)置 tomcat 的配置文件: server.xml ,打開:
重點(diǎn)在于配置紅色部分:包含端口( 82 ),監(jiān)聽的域名。(這里我已經(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> ? |
?
③來到 nginx 的 conf 目錄,打開 nginx.conf ,對(duì)里面修改如下:
(這里主要是添加轉(zhuǎn)發(fā)的域名,對(duì)于 IIS 我們?nèi)D(zhuǎn)發(fā)到對(duì)應(yīng)域名加上 81 端口,對(duì)于 tomcat 的我們?nèi)由? 82 端口,其中 Nginx 監(jiān)聽 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)聽的端口( 80 ),這里不要改
server_name: Nginx 監(jiān)聽的域名。
proxy_pass:要轉(zhuǎn)發(fā)到的地址。
④打開 IIS 服務(wù)器,再打開 Tomcat 服務(wù)器,再打開 Nginx 服務(wù)器,訪問對(duì)應(yīng)的域名,即 Nginx 配置中的 server_name,記得不需要加端口!因?yàn)? Nginx 會(huì)幫你訪問這些網(wǎng)站。
整個(gè)配置就完成了。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
