CentOS 7通過Nginx反向 Proxy實現多Tomcat負載平衡方法,centosnginx

來源:互聯網
上載者:User

CentOS 7通過Nginx反向 Proxy實現多Tomcat負載平衡方法,centosnginx

系統內容:CentOS 7.3 64位 + JDK 1.8

軟體版本:Nginx 1.8.1,Tomcat 8

前言:本人一直對Nginx挺感興趣的,之前也通過網上的許多文章學習Nginx,但是沒有多大成效,而且加上前段時間比較忙,所以暫停對Nginx的學習,不過最近相對沒那麼忙了,而且想起之前我們專案經理對我說的一句話,問我知不知道Nginx,然後我跟他說了我之前學習Nginx的事情,但是他推薦我去看官方的英文文檔,不過也有道理,這個東西既然是那家公司出的,那麼肯定他官方的文檔裡面記載著所有的一切,雖然我高考時英語就只有50多分,滿分是150分,即使看起來很吃力,我也還是堅持的看了一個下午,但是收穫確實非常大,真的比起之前在網上看的許多文章收穫多得很多很多。看懂後自己也使用了Nginx的反向 Proxy實現了多個Tomcat的負載平衡,因此有了這篇文章,希望能對有需要的人帶來協助吧!

推薦:Nginx官方文檔

一、JDK的安裝

JDK安裝的方法有很多種,這裡就不一一列舉了,簡單的說一下我個人採取的方式。

首先通過官方下載Linux使用的JDK版本,這裡使用的為jdk-8u162-linux-x64.tar.gz

然後在通過以下命令在CentOS中建立檔案夾,並將下載好的JDK上傳到該檔案夾中並解壓。

[root@VM_134_196_centos /]# cd /usr[root@VM_134_196_centos usr]# mkdir java[root@VM_134_196_centos usr]# cd java[root@VM_134_196_centos java]# tar -zxvf jdk-8u162-linux-x64.tar.gz 
解壓完成後再通過以下命令配置JDK環境變數
[root@VM_134_196_centos java]# vim /etc/profile
在檔案中添加以下JDK的環境變數
##################################JDK環境變數配置#################################export JAVA_HOME=/usr/java/jdk1.8.0_162export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/tools.jarexport PATH=$PATH:${JAVA_HOME}/bin
配置完成後使用以下命令讓修改生效以及檢測是否配置成功
[root@VM_134_196_centos java]# source /etc/profile[root@VM_134_196_centos java]# java -versionjava version "1.8.0_162"Java(TM) SE Runtime Environment (build 1.8.0_162-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
若成功輸出JDK的版本號碼資訊,則證明JDK的配置已經完成了。

至此我們的第一步就OK了!

二、Tomcat的安裝

Tomcat的安裝相對比較簡單,只需要通過官方下載Linux版本的Tomcat再上傳到伺服器並解壓即可。

這裡使用的Tomcat版本為apache-tomcat-8.5.24.tar.gz,下載完成後通過通過以下命令在CentOS中建立檔案夾,並將下載好的Tomcat上傳至該檔案夾進行解壓,由於用到多個tomcat,所以解壓後再修改tomcat的檔案夾名以及連接埠號碼等。

建立檔案夾

[root@VM_134_196_centos /]# cd usr[root@VM_134_196_centos usr]# mkdir tomcat
解壓Tomcat
[root@VM_134_196_centos usr]# cd tomcat/[root@VM_134_196_centos tomcat]# tar -zxvf apache-tomcat-8.5.24.tar.gz 
修改Tomcat檔案名稱
[root@VM_134_196_centos tomcat]# mv apache-tomcat-8.5.24 apache-tomcat-8.5.24-1
修改Tomcat設定檔
[root@VM_134_196_centos tomcat]# vim apache-tomcat-8.5.24-1/conf/server.xml 

設定檔所需修改的連接埠號碼如,保持各個Tomcat對應的連接埠號碼不一樣即可

為了體現出各個Tomcat的區別,順便修改一下各個tomcat的index.jsp檔案用於區分tomcat

[root@VM_134_196_centos tomcat]# vim apache-tomcat-8.5.24-1/webapps/ROOT/index.jsp 

最後各個tomcat都通過以下命令去啟動

[root@VM_134_196_centos tomcat]# cd apache-tomcat-8.5.24-1/bin/[root@VM_134_196_centos bin]# ./startup.sh 
再通過訪問伺服器測試各個Tomcat是否啟動成功,我本人裝了3個Tomcat,2個Tomcat 8以及1個Tomcat 7,Tomcat 7隻是用於測試使用。
[root@VM_134_196_centos tomcat]# lsapache-tomcat-7.0.82-1  apache-tomcat-7.0.82.tar.gz  apache-tomcat-8.5.24-1  apache-tomcat-8.5.24-2  apache-tomcat-8.5.24.tar.gz

至此,Tomcat的安裝也完成了!

三、Nginx的安裝

使用wget命令下載Nginx以及解壓Nginx

[root@VM_134_196_centos /]# cd home[root@VM_134_196_centos home]# wget -c https://nginx.org/download/nginx-1.8.1.tar.gz[root@VM_134_196_centos home]# tar -zxvf nginx-1.8.1.tar.gz
配置,這裡使用的是預設配置,當然也可以自己配置,具體配置資訊可查看Nginx安裝配置
[root@VM_134_196_centos home]# cd nginx-1.8.1/[root@VM_134_196_centos nginx-1.8.1]# ./configure 
編譯安裝
[root@VM_134_196_centos nginx-1.8.1]# make[root@VM_134_196_centos nginx-1.8.1]# make install
Nginx的預設安裝路徑是/usr/local/nginx,當然也可以通過以下指令查看nginx位置
[root@VM_134_196_centos nginx-1.8.1]# whereis nginxnginx: /usr/local/nginx[root@VM_134_196_centos nginx-1.8.1]# cd /usr/local/nginx
Nginx的常用指令有 nginx
stop — fast shutdown quit — graceful shutdown reload — reloading the configuration file reopen — reopening the log files

nginx:啟動;

stop:查出nginx進程號再通過kill -9將進程關閉;

quit:等待任務處理完畢後再關閉nginx進程;

reload:重啟nginx;

reopen:重啟記錄檔。

詳情可查看官方文檔Beginner’s Guide

測試Ngxin是否安裝成功,先進入sbin檔案夾對Nginx進行啟動

[root@VM_134_196_centos nginx]# cd sbin/[root@VM_134_196_centos sbin]# ./nginx 
然後直接存取伺服器IP,若出現以下資訊則說明到這裡我們的Nginx就安裝成功了!

四、配置Nginx完成反向 Proxy、負載平衡

修改Nginx設定檔

[root@VM_134_196_centos sbin]# vim ../conf/nginx.conf

最終設定檔為

#user  nobody;events {    # 各工程最大串連數    worker_connections 1024;}http {    # upstream 各伺服器位址以及權重,權重越大代表訪問率越大    upstream alie.com {        server 119.29.81.95:8081 weight=2;        server 119.29.81.95:8082 weight=2;        server 119.29.81.95:8083 weight=1;    }    server {        # 連接埠預設80        # 佈建網域名,由於沒有網域名稱,因此使用localhost        server_name localhost;        location / {            # 反向 Proxy,這裡的地址與上面配置的upstream需一致,實現負載平衡            proxy_pass http://alie.com;            proxy_redirect default;        }    }}
最後重啟Nginx並進行訪問測試
[root@VM_134_196_centos sbin]# ./nginx -s reload
直接存取伺服器的80連接埠,Nginx便會通過反向 Proxy將請求轉寄至配置好的伺服器叢集中,通過不斷重新整理可發現權重為2的兩個伺服器被訪問到的次數是比權重為1的多的。

至此,使用Nginx通過反向 Proxy實現負載平衡就已經完成啦。

本文到此就已經結束啦,希望能對有需要的人帶來協助,同時也歡迎大家加以指正,共同學習,當然Nginx還有許多很強大的地方,例如靜動分離等。

最後也還是推薦大家可以通過官方文檔進行學習,即使自認為英語很差的,其實從事這一行,英語水平都是在不知不覺中進步的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.