Nginx+Tomcat群集的實現(xiàn)示例
一.實驗環(huán)境
二.安裝多臺Tomcat服務(wù)器
1.在安裝Tomcat之前必須先安裝JDK
JDK的全稱是Java Development Kit,是sun公司提供的JAVA語言的軟件開發(fā)工具包,其中包含Java虛擬機(JVM),編寫好的Java源程序經(jīng)過編譯可形成Java字節(jié)碼,只要安裝了JDK,就可以利用jvm解釋這些字節(jié)碼文件,從而保證了Java的跨平臺性。
yum -y install java java -version #查看版本
2.安裝Tomcat
解壓二進制文件
tar zxvf apache-tomcat-9.0.8.tar.gz mv apache-tomcat-9.0.8 /usr/local/tomcat8
3.啟動Tomcat
[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh [root@localhost ~]# netstat -anpt | grep java tcp6 0 0 :::8080 :::* LISTEN 12182/java tcp6 0 0 :::8009 :::* LISTEN 12182/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 12182/java
4.創(chuàng)建測試網(wǎng)頁
[root@localhost ~]# mkdir -p /web/webapp1 [root@localhost ~]# vim /web/webapp1/index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>JSP test1 page</title> </head> <body> <% out.println("動態(tài)頁面 1,http://www.test1.com");%> </body> <body> <div>動態(tài)頁面的圖片 1</div><br><img src="logo.jpg"> </body> </html>
5.修改Tomcat主配置文件
[root@localhost ~]# vim /usr/local/tomcat8/conf/server.xml <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context docBase="/web/webapp1" path="" /> //地址為創(chuàng)建網(wǎng)址 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host>
6.重啟Tomcat
[root@localhost ~]# /usr/local/tomcat8/bin/shutdown.sh [root@localhost ~]# /usr/local/tomcat8/bin/startup.sh
7.測試
http://192.168.10.102:8080 ##注意:此時看不到圖片,圖片要放到nginx上,由nginx解析
備注:另外一臺tomcat用同樣的方法部署
三.安裝Nginx
1.下載相關(guān)組件
yum -y install pcre-devel bzip2-devel gcc*
備注:
pcre-devel
: 提供PCRE庫的開發(fā)文件,用于支持NGINX的正則表達式功能。zlib-devel
: 提供zlib庫的開發(fā)文件,用于支持NGINX的壓縮和解壓縮功能。openssl-devel
: 提供OpenSSL庫的開發(fā)文件,用于支持NGINX的HTTPS和SSL/TLS功能。gcc
: GNU Compiler Collection,用于編譯源代碼,包括NGINX本身。
2.創(chuàng)建Nginx的程序用戶
useradd -M -s /sbin/nologin nginx
備注: -M :不為用戶創(chuàng)建家目錄;-s /sbin/nologin: 這個選項將新用戶的登錄 shell 設(shè)置為 /sbin/nologin
,即禁止該用戶登錄系統(tǒng)。
3.配置和安裝Nginx
[root@localhost ~]# tar zxvf nginx-1.12.0.tar.gz [root@localhost ~]# cd nginx-1.12.0 [root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx [root@localhost nginx-1.12.0]# make && make install
備注:./configure
是一個常見的命令,通常用于配置和準(zhǔn)備軟件包的安裝,執(zhí)行完成后會生成一個叫Makefile的文件,--prefix指定文件安裝路徑;--user和--group指定 Nginx 在運行時所使用的用戶和組;make編譯軟件;make install安裝。
ln
: 是用于創(chuàng)建鏈接的命令。-s
: 是ln
命令的一個選項,表示創(chuàng)建符號鏈接(軟鏈接)。/usr/local/nginx/sbin/nginx
: 是源文件或目錄,這里指向的是 Nginx 可執(zhí)行文件的路徑。/usr/local/sbin/
: 是目標(biāo)路徑,表示在/usr/local/sbin/
目錄下創(chuàng)建符號鏈接。
因此,執(zhí)行這條命令后,將會在 /usr/local/sbin/
目錄下創(chuàng)建一個名為 nginx
的符號鏈接,指向 /usr/local/nginx/sbin/nginx
這個實際的可執(zhí)行文件。這樣做的目的通常是為了方便在命令行直接執(zhí)行 nginx
命令,而無需輸入完整的路徑。
4.編輯測試網(wǎng)頁文件
[root@localhost ~]# vim /usr/local/nginx/html/index.html <body> <h1>靜態(tài)頁面</h1> <p>這是個靜態(tài)頁面</p> 6 </body>
5.添加圖片
[root@nginx ~]# mkdir /usr/local/nginx/html/img //創(chuàng)建靜態(tài)文件目錄 [root@nginx ~]# cp /root/logo.jpg /usr/local/nginx/html/img
6.修改主配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf (1)在http配置項中添加 upstream tomcat_server { server 192.168.10.102:8080 weight=1; server 192.168.10.103:8080 weight=1; } (2)在server.xml配置項中添加 charset utf-8; //字符編碼 location / { root html; index index.html index.htm; } location ~ .*\.jsp$ { proxy_set_header HOST $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Client-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://tomcat_server; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { root /usr/local/nginx/html/img; expires 30d; }
備注:
proxy_set_header HOST $host;
把原h(huán)ttp請求中的Header中的Host字段放到轉(zhuǎn)發(fā)的請求報文里,后端的web服務(wù)器利用這個host判斷請求的是哪個虛擬主機
proxy_set_header X-Real-IP $remote_addr;
使用$remote_addr變量獲得用戶的真實ip,$remote_addr一般都是設(shè)置第一個代理上面。當(dāng)一個請求通過多個代理服務(wù)器時,用戶的IP將會被代理服務(wù)器IP覆蓋
proxy_set_header Client-IP $remote_addr;
獲取客戶端ip地址
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
從客戶的真實ip為起點,穿過多層級的proxy ,最終到達web 服務(wù)器,都會記錄下來。所以在獲取用戶真實ip的時候,最后一個nginx配置此變量,用來獲取客戶端的ip地址
7.啟動nginx
[root@localhost ~]# nginx
8.修改tomcat的配置文件,并重啟tomcat
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%a %r %t %{X-Real-IP}i" resolveHosts="false" />
注意:在nginx配置文件中用X-Real-IP保存了客戶端的真是IP地址,在tomcat中就需要將X-Real-IP解析出來,顯示到tomcat的日志中。
9.測試
瀏覽器打開網(wǎng)站
(1)靜態(tài)網(wǎng)站測試
http://192.168.10.101
(2)動態(tài)網(wǎng)站測試
http://192.168.10.101/index.jsp
再次訪問
(3)查看tomcat的日志文件
到此這篇關(guān)于Nginx+Tomcat群集的文章就介紹到這了,更多相關(guān)Nginx+Tomcat群集內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Apache和Nginx實現(xiàn)虛擬主機的3種方式小結(jié)
Apache是一個模型化的服務(wù)器,可以運行在幾乎所有的服務(wù)器上。其屬于應(yīng)用服務(wù)器,這篇文章主要介紹了Apache和Nginx實現(xiàn)虛擬主機的3種方式,需要的朋友可以參考下2023-11-11Centos7安裝、卸載nginx及配置,配置成系統(tǒng)服務(wù)方式(一步到位)
這篇文章主要介紹了Centos7安裝、卸載nginx及配置,配置成系統(tǒng)服務(wù)方式(一步到位),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12Nginx+FastDFS搭建圖片服務(wù)器的方法實現(xiàn)
這篇文章主要介紹了Nginx+FastDFS搭建圖片服務(wù)器的方法實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03