Web服務器Nginx和Tomcat整合

在之前幾篇Web服務器講解中,總結(jié)了Apache威酒,Nginx和Tomcat的基本知識及他們之間的區(qū)別和聯(lián)系煌恢。Nginx是近年來走向流行的靜態(tài)服務器,而Tomcat是運行在JVM之上可以解析jsp宠页,servlet等動態(tài)資源的服務器左胞,對于大多數(shù)有過相關開發(fā)經(jīng)驗或者做過一些demo的開發(fā)者而言Tomcat肯定不會陌生,基本上所有Java Web項目都是運行在Tomcat之上的举户。
兩者各有優(yōu)缺點烤宙,因此在企業(yè)的實際開發(fā)中,Tomcat + Nginx整合的模式也得到廣泛應用俭嘁。Chuck也是在和一個學長交流的過程中躺枕,學長建議學一下Nginx相關的知識后開始對這部分進行學習并有所總結(jié)。
整合Nginx和Tomcat第一步就是安裝,可以先安裝Nginx拐云,但是在安裝Tomcat之前需要先安裝JDK罢猪,Chuck在自己的CentOS7上進行整合,因此首先在CentOS7上安裝JDK叉瘩。

JDK安裝注意事項

安裝JDK的過程自己百度吧膳帕,網(wǎng)上全是,大致就是下載linux下的JDK安裝包然后解壓到你想安裝的路徑即可薇缅,然后再/etc/profile中配置環(huán)境變量危彩,寫入的內(nèi)容和在Windows操作系統(tǒng)下配置環(huán)境變量的內(nèi)容基本一樣。保存并退出后泳桦,通過source /etc/profile命令重新加載profile文件汤徽,通過java -version命令查看JDK版本信息,能正確顯示即安裝成功灸撰。

Nginx安裝

Nginx安裝之前需要先安裝一些依賴的東西:
①gcc 安裝
安裝 nginx 需要先將官網(wǎng)下載的源碼進行編譯谒府,編譯依賴 gcc 環(huán)境,如果沒有 gcc 環(huán)境梧奢,則需要安裝:

yum install gcc-c++

②PCRE pcre-devel 安裝
PCRE(Perl Compatible Regular Expressions) 是一個Perl庫狱掂,包括 perl 兼容的正則表達式庫。nginx 的 http 模塊使用 pcre 來解析正則表達式亲轨,所以需要在 linux 上安裝 pcre 庫趋惨,pcre-devel 是使用 pcre 開發(fā)的一個二次開發(fā)庫。nginx也需要此庫惦蚊。命令:

yum install -y pcre pcre-devel

③zlib 安裝
zlib 庫提供了很多種壓縮和解壓縮的方式器虾, nginx 使用 zlib 對 http 包的內(nèi)容進行 gzip ,所以需要在 Centos 上安裝 zlib 庫蹦锋。

yum install -y zlib zlib-devel

④OpenSSL 安裝
OpenSSL 是一個強大的安全套接字層密碼庫兆沙,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及 SSL 協(xié)議莉掂,并提供豐富的應用程序供測試或其它目的使用葛圃。
nginx 不僅支持 http 協(xié)議,還支持 https(即在ssl協(xié)議上傳輸http)憎妙,所以需要在 Centos 安裝 OpenSSL 庫库正。

yum install -y openssl openssl-devel

接下來是安裝Nginx,需要先到官網(wǎng)下載Linux系統(tǒng)下的Nginx壓縮包厘唾,大概不到10MB褥符,下載很快。
下載下來的Nginx一般是tar.gz格式文件抚垃,通過

tar -zxvf 文件名  解壓目標路徑名 
如: tar -zxvf nginx-1.12.tar.gz  /usr/local/nginx

的方式進行解壓到目標路徑下喷楣。
Chuck使用的是很新的Nginx-1.12版本趟大,下載后完全可以不做任何配置選用默認的配置,進入到解壓好的目標文件中輸入安裝命令即可完成安裝(以上述路徑作為Nginx安裝路徑)

##轉(zhuǎn)移到解壓路徑
cd /usr/local/nginx
##選擇默認配置完成安裝
./configure && make && make install

到這里Nginx安裝工作就完成了铣焊,可以啟動運行Nginx逊朽。啟動命令:

/usr/local/nginx/sbin/nginx

此時通過瀏覽器輸入127.0.0.1顯示圖示情況即為安裝成功

安裝啟動成功
Tomcat安裝與配置

Tomcat的大體安裝過程與Nginx類似,也是先到官網(wǎng)下載壓縮包曲伊,建議不要下載太高版本惋耙,Tomcat 8足矣。將下載好的文件解壓到目標路徑:

tar -zxvf apache-tomcat-8.5.15.tar.gz /usr/local/tomcat

接下來在/etc/profile中配置Tomcat熊昌,添加CATALINA_HOME環(huán)境變量即可

export CATALINA_HOME=/usr/local/tomcat

進入Tomcat安裝目錄下的bin文件夾,通過./startup.sh啟動Tomcat湿酸,打開瀏覽器在地址欄輸入127.0.0.1:8080婿屹,顯示類似下圖即為安裝成功(圖片是網(wǎng)上截的,地址欄輸入127.0.0.1即可版本號與下載安裝版本號相同):

Tomcat安裝成功運行實例
小知識點

1.我們看到訪問Nginx和Tomcat時都有各自的歡迎頁面推溃,那么這些歡迎頁面存放在哪里呢昂利?
Nginx進入安裝目錄會看到一個名為html的文件夾,使用瀏覽器打開index.html即可看到歡迎頁面铁坎。
在Tomcat中蜂奸,有過項目部署經(jīng)驗的開發(fā)者都清楚項目是部署在Tomcat安裝路徑下的webapps中,webapps下ROOT文件夾內(nèi)的index.jsp就是Tomcat的歡迎頁面硬萍。

2.Tomcat項目默認部署在其安裝路徑下的webapps中扩所,能不能部署到其他地方?
這個也是可以的朴乖,但需要修改配置文件祖屏。首先將webapps下的所有文件復制到目標文件夾:

cp  /usr/local/tomcat/webapps/*  /usr/local/tomcatnginx/www

復制所有webapps下的文件到/usr/local/tomcatnginx/www中,然后修改Tomcat安裝目錄conf文件夾下的server.xml文件买羞,一百一十幾行有這么一句話:

<Host appBase="webapps"  autoDeploy="true" name="localhost" unpackWARs="true">

Tomcat就是通過這個配置文件到webapps下尋找項目袁勺,現(xiàn)在只需要將AppBase的值改為剛才設置的路徑即可

<Host appBase="/usr/local/tomcatnginx/www"  autoDeploy="true" name="localhost" unpackWARs="true">

驗證可以在新的項目部署文件夾的ROOT文件夾中創(chuàng)建一個a.jsp,在瀏覽器地址欄輸入127.0.0.1:8080/a.jsp能正常顯示就算配置成功畜普。不放心的話可以在Tomcat安裝路徑的webapps的ROOT下創(chuàng)建b.jsp期丰,在瀏覽器地址欄輸入127.0.0.1:8080/b.jsp,此時新的項目部署文件夾不可能找到b.jsp吃挑,所以必會拋出404錯誤钝荡。

Nginx與Tomcat整合

最關鍵的一步來了。如何整合兩個服務器呢儒鹿?還是去修改配置文件化撕,但這回修改的是Nginx的配置文件。進入Nginx安裝目錄约炎,進入conf文件夾植阴,創(chuàng)建jsp.conf(文件名可以為其他)蟹瘾,寫入如下內(nèi)容:

user  nobody;
#==worker進程數(shù),一般設置為CPU個數(shù)===
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    server {
        #============監(jiān)聽的Nginx端口========
        listen 127.0.0.1:80;
        server_name  127.0.0.1;
        access_log  logs/host.access.log  combined;
        #============對不同請求的處理=============
        location ~ \.(jsp|jspx|do|action)?$ 
        {   
            #=============tomcat的資源位置============
            root /usr/local/tomcatnginx/www;
            index index.jsp index.jspx index.do;
            #==========Nginx提供的代理============
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            #=== 如果遇到.jsp .jspx .do .action 的請求就進入該服務器(tomcat)===
            proxy_pass http://127.0.0.1:8080;
        }
    }

}

代碼注解給的挺明白的掠手,不多說了憾朴,此時需要重新啟動Nginx服務器并加載jsp.conf文件

//首先關閉Nginx進程
killall -9 nginx
//重啟時加載配置文件
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/jsp.conf

打開瀏覽器,輸入127.0.0.1/a.jsp(注意主機名后沒有8080喷鸽,a.jsp為之前在Tomcat新的部署路徑中創(chuàng)建的jsp文件)众雷,若能正常顯示則說明整合完成,每當有.jsp做祝、.jspx砾省、.do或.action的后綴名請求時Nginx便會交由Tomcat實現(xiàn)動態(tài)解析。
關于整合就講到這里混槐,最好能在Linux系統(tǒng)下實際操作一番有助于理解编兄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市声登,隨后出現(xiàn)的幾起案子狠鸳,更是在濱河造成了極大的恐慌,老刑警劉巖悯嗓,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件件舵,死亡現(xiàn)場離奇詭異,居然都是意外死亡脯厨,警方通過查閱死者的電腦和手機铅祸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來俄认,“玉大人个少,你說我怎么就攤上這事∶行樱” “怎么了夜焦?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長岂贩。 經(jīng)常有香客問我茫经,道長,這世上最難降的妖魔是什么萎津? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任卸伞,我火速辦了婚禮,結(jié)果婚禮上锉屈,老公的妹妹穿的比我還像新娘荤傲。我一直安慰自己,他們只是感情好颈渊,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布遂黍。 她就那樣靜靜地躺著终佛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪雾家。 梳的紋絲不亂的頭發(fā)上铃彰,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天,我揣著相機與錄音芯咧,去河邊找鬼牙捉。 笑死,一個胖子當著我的面吹牛敬飒,可吹牛的內(nèi)容都是我干的邪铲。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼无拗,長吁一口氣:“原來是場噩夢啊……” “哼霜浴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蓝纲,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎晌纫,沒想到半個月后税迷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡锹漱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年箭养,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哥牍。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡毕泌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嗅辣,到底是詐尸還是另有隱情撼泛,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布澡谭,位于F島的核電站愿题,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蛙奖。R本人自食惡果不足惜潘酗,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望雁仲。 院中可真熱鬧仔夺,春花似錦、人聲如沸攒砖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至灶体,卻和暖如春阅签,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蝎抽。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工政钟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人樟结。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓养交,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瓢宦。 傳聞我的和親對象是個殘疾皇子碎连,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容