NGINX源碼安裝+nginx_upstream_jvm_route

一、準備安裝包html

  • nginx-1.4.7.tar.gz
  • nginx_upstream_jvm_route

nginx擴展包,使得nginx能根據客戶端的cookie實現粘性轉發,保證同一客戶端的請求轉發到相同的tomcat,解決session問題。因爲安裝此模板對nginx版本有必定要求,因此請務必按照文檔所寫的版本進行安裝。基於各個服務器的差別,下面的安裝步驟可能會有所差別,可是原理是同樣的,請安裝人員在安裝過程當中,按照實際提示進行安裝。nginx

  • 把這兩個包都放到安裝目錄中,解壓nginx-1.4.7.tar.gz
#tar zxvf nginx-1.4.7.tar.gz

輸入圖片說明

二、編譯安裝nginx 若是以前有用yum在服務器上安裝了nginx,請先卸載apache

# yum remove nginx

進入nginx安裝包解壓以後的目錄瀏覽器

# cd /dhsq/nginx-1.4.7

安裝nginx_upstream_jvm_route模塊補丁tomcat

# patch -p0 < /dhsq/nginx_upstream_jvm_route/jvm_route.patch

顯示以下信息表示補丁安裝成功。 輸入圖片說明服務器

而後咱們對源碼進行編譯cookie

./configure --with-http_stub_status_module --with-http_ssl_module --add-module=/dhsq/nginx_upstream_jvm_route/

輸入圖片說明

提示咱們尚未安裝PCRE庫,使用yum安裝session

# yum install pcre
# pcre-devel

安裝以後再次編譯 編譯仍是不經過,提示缺乏OpenSSL庫 輸入圖片說明app

使用yum安裝負載均衡

# yum install openssl
# yum install openssl-devel

安裝以後再次編譯,編譯成功

輸入圖片說明

注意紅色地方的路徑爲nginx安裝的相關路徑,固然你也能夠在編譯的時候指定安裝的路徑,這裏咱們使用默認的安裝路徑。 而後進行安裝

# make

輸入圖片說明

# make install

輸入圖片說明

咱們來到nginx的目錄

# cd /usr/local/nginx/

能夠看到各文件已經有了。

輸入圖片說明

啓動nginx。因爲源碼安裝沒有把nginx安裝成服務,咱們不能使用service nginx start這些命令。

# /usr/local/nginx/sbin/nginx

啓動以後咱們能夠在瀏覽器輸入服務器的ip地址 看到以下界面,說明nginx安裝成功。 輸入圖片說明

三、基於nginx_upstream_jvm_route模塊粘性session負載均衡配置

worker_processes  4;
worker_rlimit_nofile 4096;
worker_connections  4096;
upstream www.mytest.com{
        #ip_hash;
        server 127.0.0.1:8080 srun_id=tomcat1;
        server 127.0.0.1:9090 srun_id=tomcat2;
        jvm_route $cookie_JSESSIONID|sessionid reverse;
}
location / {
            proxy_pass http://www.mytest.com;
            root   html;
            index  index.html index.htm;
 }

輸入圖片說明

還須要修改tomcat的server.xml配置文件

# vi /dhsq/apache-tomcat-app-t2/conf/server.xml
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

在後面增長jvmRoute標籤,內容即爲在nginx中的名字。注意在集羣的tomcat中名字惟一。 輸入圖片說明

最後重啓tomcat和nginx

# /www/apache-tomcat-app-t1/bin/shutdown.sh
# /www/apache-tomcat-app-t1/bin/startup.sh

Nginx的重啓方法

# ps -ef|grep nginx

查詢nginx的進程,而後使用kill殺掉進程,而後再從新啓動便可。

# /usr/local/nginx/sbin/nginx

這時候再在瀏覽器中輸入ip地址能夠看到請求被轉發到tomcat中了

輸入圖片說明

相關文章
相關標籤/搜索