亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > Nginx > 正文

詳解Nginx + Tomcat 反向代理 負載均衡 集群 部署指南

2024-08-30 12:28:24
字體:
來源:轉載
供稿:網友

Nginx是一種服務器軟件,也是一種高性能的http和反向代理服務器,同時還是一個代理郵件服務器。也就是說,我們在Nginx上可以發布網站,可以實現負載均衡(提高應答效率,避免服務器崩潰),還可以作為郵件服務器實現收發郵件等功能。而最常見的就是使用Nginx實現負載均衡。

Nginx與其他服務器的性能比較:

Tomcat服務器面向Java語言,是重量級的服務器,而Nginx是輕量級的服務器。Apache服務器穩定、開源、跨平臺,但是Apache服務器不支持高并發,Nginx能支持處理百萬級的TCP連接,10萬以上的并發連接,并且是一個很好的跨平臺服務器。
Nginx主要優點有可以實現高并發、部署簡單、內存消耗少、成本低等,主要缺點有rewrite功能不夠強大,模塊沒有Apache的多。

本篇主要講解 Nginx + Tomcat 反向代理和負載均衡的部署,以通俗實用為主。本篇文章每個部分之間沒有太大關系,可根據需求分開學習。

下來看一下Nginx反向代理的過程:

nginx負載均衡和集群,nginx,tomcat負載均衡,集群,負載均衡

Nginx負載均衡的過程(會自動選擇壓力較小的服務器進行訪問):

nginx負載均衡和集群,nginx,tomcat負載均衡,集群,負載均衡

可以看出,負載均衡是通過反向代理的原理實現的,所以也稱 反向代理的負載均衡 。所以我們會部署負載均衡,那么反向代理也就會了。

總的來說,負載均衡實現的方式分為軟件實現和硬件實現兩種,硬件實現運行的效率非常高,但是對應的成本也非常高。軟件實現運行效率不如硬件,但是成本相對來說低得多。而使用Nginx服務器實現負載均衡,那么就是通過軟件的方式來實現負載均衡,并且Nginx本身支持高并發等。故而使用Nginx服務器實現負載均衡,能大大節約企業的成本,并且由于Nginx是服務器軟件,其執行效率也是非常高。本篇的目的也就是幫助大家使用Nginx實現負載均衡。

負載均衡的核心就是建立一個服務器集群,然后用戶首先訪問到第三方代理服務器(這里我們選用Nginx),然后由代理服務器選擇一個集群中的服務器,然后將請求引入選定的服務器(這里我們選用Tomcat)。

如下圖,通過反向代理我們實現下面的負載均衡,這里我們 假定 四臺服務器公網的ip,一臺做代理服務器,三臺做負載均衡下的服務器:

nginx負載均衡和集群,nginx,tomcat負載均衡,集群,負載均衡

好了,整體架構已經基本上清晰了,下來我們來具體實現下:

提示:本篇我們基本上都是使用SSH進行相關操作的,Windows下可以嘗試安裝PuTTY,Mac下直接使用系統自帶的終端工具即可。

1.Linux下搭建Nginx服務器

我們在 192.168.2.20 這臺服務器上搭建Nginx服務器:

1)下載Nginx

2)上傳服務器Nginx安裝包

$ scp ~/Downloads/nginx-1.10.2.tar.gz root@192.168.2.20:/usr/local

3)安裝Nginx

$ ssh root@192.168.2.20             //SSH連接# yum -y install gcc gcc-c++ autoconf automake  //gcc、gcc-c++的庫文件# yum install -y pcre pcre-devel         //安裝Nginx依賴包# yum install -y zlib zlib-devel

注意:-y表示遇到判斷全部yes,autoconf表示自動配置,automake表示自動編譯。

# cd /usr/local# tar -zxvf nginx-1.10.2.tar.gz         //解壓縮# cd nginx-1.10.2                //切換到該目錄下# ./configure                  //配置# make# make install                 //安裝

檢驗是否完成安裝:

# cd /usr/local# ls                      //如果存在nginx文件夾,則安裝成功

經過上面的安裝步驟和目錄設置,nginx的啟動程序就是/usr/local/nginx/sbin/nginx,默認配置文件是/usr/local/nginx/conf/nginx.conf,但是不建議直接編輯nginx.conf,一般我們都選擇新建配置文件,然后在新建的配置文件中修改端口、反向代理路徑等。

2.Nginx的啟動、停止、信號控制

1)啟動Nginx服務器(格式:Nginx可執行文件 -c Nginx配置文件):

# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

2)停止Nginx服務器:

停止Nginx服務器首先要查詢Nginx的主進程號(master process),假設此處查詢得到1060(方便下面演示使用):

# ps -ef|grep nginx

下來看如何停止Nginx服務器,停止Nginx有三種方式:

從容停止:

# ps -ef|grep nginx  //查看Nginx的主進程號(master process),假設此處查詢得到1060# kill -quit 1060

快速停止:

# kill -term 1060

強制停止:

# pkill -9 nginx

3)重啟Nginx服務器:

當我們修改了Nginx配置文件,需要重啟才能生效。我們在重啟之前還需要驗證配置文件的正確性,然后進行重啟操作:

# /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf   //驗證# /usr/local/nginx/sbin/nginx -s reload                  //重啟

4)平滑升級Nginx服務器

平滑升級不會停掉在運行著的進程,這些進程會繼續處理請求,但不會再接受新請求,在這些老進程在處理完還在處理的請求后,停止。此平滑升級的過程中,新開的進程會被處理。這就是平滑升級。

# /usr/local/nginx/sbin/nginx -v       //查看當前版本

下面進行平滑升級:

# cd /usr/local# tar -zxvf nginx-1.11.6.tar.gz       //解壓縮 新版本Nginx# cd nginx-1.11.6              //切換到該目錄下# ./configure                //配置# make# cd /usr/local/nginx/sbin          //打開 舊版本Nginx可執行文件位置# cp nginx nginx.old         //備份 舊版本Nginx可執行文件,防止升級錯誤而無法恢復# cp -rfp /usr/local/nginx-1.11.6/objs/nginx /usr/local/nginx/sbin   //復制新版本可執行文件到舊版本處# rm -f /usr/local/nginx-1.11.6.tar.gz    //善后工作 刪除壓縮文件# rm -rf /usr/local/nginx-1.11.6       //刪除文件夾

至此,Nginx服務器平滑升級成功。

3.Nginx中負載均衡的實現

我們還是先連接SSH,然后進行下面操作(一般不建議修改默認主配置文件nginx.conf,所以我們新建負載均衡配置文件fzjh.conf,保證服務器安全,如下):

# cd /usr/local/nginx/conf# touch fzjh.conf# vi fzjh.conf  //用vi編輯器打開文件,然后按鍵盤的i

注意:vi編輯器中,鍵盤按 i 進入 INSERT 狀態,按 Esc 退出 INSERT 狀態。

然后輸入以下配置代碼(注釋部分按需開啟):

#設置低權限用戶,為了安全而設置的user nobody;#工作衍生進程數worker_processes 4;#設置錯誤文件存放路徑#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#設置pid存放路徑(pid是控制系統中重要文件)#pid logs/nginx.pid;#設置最大連接數events{  worker_connections 1024;}http{  #主要是用于設置一組可以在proxy_pass和fastcgi_pass指令中使用額代理服務器,默認負載均衡方式為輪詢  upstream tomcat_client {    #設置同一個cookie的兩次/多次請求,請求的是同一臺服務器    ip_hash;    #weight權重,默認1,權重越大訪問概率越大,backup備用服務器,服務器全部崩潰后啟動    server 192.168.2.21:8080 weight=5;    server 192.168.2.22:8080 weight=5;    server 192.168.2.23:8080 weight=5 backup;  }  #開啟gzip壓縮,開啟后,訪問網頁會自動壓縮  #gzip on;  #指定服務器的名稱和參數  server {    listen 80;    server_name test.nginxtest.net;    #設置字符    #charset koi8-r;    #location / 指用根目錄做負載均衡    location / {      proxy_pass http://tomcat_client;      proxy_redirect default;      #設置代理      proxy_set_header Host $host;      proxy_set_header X-Real-IP $remote_addr;    }  }}

輸入完成后按下Esc,然后輸入:

:wq!

就可以保存并退出負載均衡的配置文件了,下來我們加載我們的配置文件:

# /usr/local/nginx/sbin/nginx                      //啟動Nginx# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/fzjh.conf    //加載配置文件

如果存在端口占用,可以使用如下命令Kill掉Nginx的程序:

# killall -9 nginx

至此,Nginx服務器部署完畢。下面我們開始部署負載均衡下的那三臺真實提供數據的服務器。

4.Linux下安裝jdk

我們在192.168.2.21、192.168.2.22、192.168.2.23這三臺服務器安裝jdk,以192.168.2.21為例:

1)下載jdk

2)上傳服務器jdk安裝包

$ scp ~/Downloads/jdk-8u112-linux-x64.tar.gz root@192.168.2.21:/usr/local

3)安裝jdk

$ ssh root@192.168.2.21         //SSH連接# cd /usr/local# tar -zxvf jdk-8u112-linux-x64.tar.gz //解壓縮# mv jdk1.8.0_112/ jdk         //將jdk1.8.0_112重命名為jdk# vi /etc/profile            //用vi編輯器打開文件,然后按鍵盤的i

下來我們移動光標至最后面,兩個回車換行,然后添加下面代碼配置java的環境變量:

JAVA_HOME="/usr/local/jdk"CLASS_PATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"PATH=".:$PATH:$JAVA_HOME/bin"CATALINA_HOME="/usr/local/tomcat"export JAVA_HOME CATALINA_HOME

輸入完成后按下Esc,然后輸入:

:wq!

就可以保存并退出了。此時我們想讓其立即生效,則需要繼續輸入命令:

# source /etc/profile

此時profile文件就更新了,此時環境變量就配置成功了。下面我們驗證一下jdk是否安裝配置成功:

# java -version

如果返回java版本號則安裝成功。

5.Linux下搭建Tomcat服務器

我們在192.168.2.21、192.168.2.22、192.168.2.23這三臺服務器搭建Tomcat服務器,以192.168.2.21為例:

1)下載Tomcat 

2)上傳服務器Tomcat安裝包

$ scp ~/Downloads/apache-tomcat-8.5.9.tar.gz root@192.168.2.21:/usr/local

3)安裝Tomcat

$ ssh root@192.168.2.21         //SSH連接# cd /usr/local# tar -zxvf apache-tomcat-8.5.9.tar.gz //解壓縮# mv apache-tomcat-8.5.9/ tomcat    //將apache-tomcat-8.5.9重命名為tomcat

4)設置Tomcat網頁文件目錄

Tomcat默認網頁文件的路徑是 /usr/local/tomcat/webapps/ROOT,但是一般我們不在這里存放,我們在Linux根目錄新建 data/wwwroot 目錄:

# mkdir /data             //新建目錄# mkdir /data/www# mkdir /data/www/ROOT# cd /usr/local/tomcat/conf# vi server.xml            //用vi編輯器打開server.xml配置文件,打開后鍵盤按i

我們找到Host節點下的appBase=”webapps”,修改為:appBase="/data/www"

輸入完成后按下Esc,然后輸入:

:wq!

就可以保存并退出配置文件了,然后重啟Tomcat即可生效,此時Tomcat的網頁文件目錄就變成了 /data/www/ROOT 了。

配置Tomcat環境變量,我們在配置jdk的時候已經配置好了,可以回頭看一下。

6.Tomcat的啟動、停止

1)啟動Tomcat服務器

# /usr/local/tomcat/bin/startup.sh

2)停止Tomcat服務器:

# /usr/local/tomcat/bin/shutdown.sh

到此,Nginx + Tomcat 負載均衡 集群 已經部署完畢了。不過有了服務器,肯定也少不了數據庫,下面拓展一下Linux下安裝MySQL數據庫的方法。

7.Linux下安裝MySQL數據庫

我們重新找了 192.168.2.30 這臺服務器上MySQL數據庫:

1)下載MySQL數據庫

2)上傳MySQL數據庫安裝包

$ scp ~/Downloads/mysql-5.1.51.tar.gz root@192.168.2.30:/usr/local

3)安裝MySQL

$ ssh root@192.168.2.30         //SSH連接# groupadd mysql            //建立mysql的組# useradd mysql -g mysql        //增加用戶mysql到mysql的組中# yum list|grep ncurses# yum -y install ncurses-devel# yum install ncurses-devel# cd /usr/local# tar -zxvf mysql-5.1.51.tar.gz     //解壓縮# cd mysql-5.1.51# ./configure --prefix=/usr/local/mysql --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-readline --with-sll //配置,設置安裝路徑,設置編譯mysql不帶共享庫,設置編譯client不帶共享庫,設置要以rmp的方式安裝tar包,設置以rmp的方式安裝opensll# make# make install             //安裝,在make[4]的時候等待時間比較長,幾分鐘到十幾分鐘,都是正常現象# /usr/local/mysql/bin/mysql_install_db --user    //對安裝好的MySQL進行初始化# cp ./support-files/mysql.server /etc/init.d/mysql //將MySQL啟動服務復制到系統中并重命名為mysql# cp ./support-files/my-medium.cnf /etc/my.cnf    //復制規則文件# chmod 755 /etc/init.d/mysql            //更改文件權限//文件權限由三個數字組成,第一位:文件擁有者的權限,第二位:文件擁有者同組的人的權限,第三位:文件擁有者非同組人的權限//7:可讀可寫可執行,5:可讀可執行# cd /usr/local/mysql# chown -R mysql .                  //將 /usr/local/mysql 的擁有者更改為mysql# chgrp -R mysql .                  //將 /usr/local/mysql 歸到mysql組中# ps -ef|grep mysql# kill -9 3632          //將mysql所有進程號依次殺死,這里假定是3632# /usr/local/mysql/bin/mysql_install_db --user=mysql    //再次初始化# service mysql start                   //啟動MySQL# /usr/local/mysql/bin/mysqladmin -u root password '123456' //設置MySQL密碼

到此MySQL就安裝成功了,下來我們測試一下:

# /usr/local/mysql/bin/mysql -u root -p

如果輸入密碼后可以登進MySQL,那么就測試成功。下面我們設置MySQL允許開啟遠程連接:

# /usr/local/mysql/bin/mysql -u root -pmysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;//創建用戶用于遠程連接(root:用戶名,%:所有電腦都可以連接,也可以設置某個ip地址運行連接,123456:密碼)mysql> flush privileges;      //立即生效

下面我們查詢一下數據庫的用戶:

mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;mysql> /q              //登出

找一臺電腦測試一下,使用Navicat遠程登錄MySQL,登進成功。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
人妖精品videosex性欧美| 日韩电影免费观看在线观看| 欧美视频精品一区| 欧美老女人性视频| 久久久亚洲成人| 国产精品pans私拍| 欧美激情久久久| www.久久色.com| 欧美高清videos高潮hd| 国产精品精品一区二区三区午夜版| 欧美视频在线观看 亚洲欧| 国产主播在线一区| 国内精品一区二区三区| 日本国产高清不卡| 亚洲精品网站在线播放gif| 亚洲毛片在线免费观看| 欧美日韩视频在线| 俺去了亚洲欧美日韩| 日韩av一区二区在线| 欧美激情中文字幕乱码免费| 国产精品久久久久久亚洲调教| 午夜精品久久久久久久白皮肤| 奇米成人av国产一区二区三区| 欧美日韩精品在线| 精品国偷自产在线视频| 亚洲偷欧美偷国内偷| 欧美成人免费全部观看天天性色| 久久久久久亚洲精品不卡| 国产精品毛片a∨一区二区三区|国| 亚洲精品国产精品自产a区红杏吧| 欧美大学生性色视频| 性金发美女69hd大尺寸| 久久久av网站| 激情懂色av一区av二区av| 97精品久久久| 日韩欧美在线视频免费观看| 亚洲在线www| 91成人在线观看国产| 亚洲性xxxx| 欧美日韩激情视频| 国产www精品| 亚洲free嫩bbb| 中文字幕精品一区久久久久| 久久精品国产电影| 色爱精品视频一区| 国产精品jvid在线观看蜜臀| 精品激情国产视频| 国产精品黄色影片导航在线观看| 欧美老女人性视频| 欧美国产精品人人做人人爱| 欧美国产极速在线| 日本高清+成人网在线观看| 亚洲女人天堂色在线7777| 亚洲美女性视频| 91精品国产高清自在线看超| 97精品一区二区三区| 欧美壮男野外gaytube| 91日韩在线播放| 51久久精品夜色国产麻豆| 亚洲成人精品视频| 亚洲精品视频免费在线观看| 日韩精品久久久久久福利| 亚洲全黄一级网站| 色悠悠久久88| 中文字幕亚洲一区二区三区五十路| 亚洲精品综合久久中文字幕| 91久久精品久久国产性色也91| 亚洲国产精品成人一区二区| 91国内精品久久| 亚洲精品wwww| www.亚洲男人天堂| 成人激情视频在线| 日韩精品极品在线观看播放免费视频| 中文字幕日韩欧美在线视频| 久久久日本电影| 亚洲韩国青草视频| 国产精品久久久久久搜索| 国产亚洲人成a一在线v站| 国产福利精品av综合导导航| 亚洲永久免费观看| 久久噜噜噜精品国产亚洲综合| 一本大道久久加勒比香蕉| 91免费高清视频| 亚洲第一区在线观看| 日韩精品免费看| 按摩亚洲人久久| 2019精品视频| 欧美激情欧美狂野欧美精品| 久久精品视频亚洲| 欧美大人香蕉在线| 精品国产精品三级精品av网址| 欧美日韩国产色| 亚洲午夜激情免费视频| 国产性猛交xxxx免费看久久| 国产在线精品自拍| 国产91精品黑色丝袜高跟鞋| 亚洲精品有码在线| 永久555www成人免费| 国产精品久久电影观看| 欧美一乱一性一交一视频| 亚洲精品美女在线观看| 午夜欧美不卡精品aaaaa| 欧美性高潮床叫视频| 亚洲国产精品一区二区三区| 国产suv精品一区二区三区88区| 久久精品国产一区| 久久国产精品视频| 黑人巨大精品欧美一区二区一视频| 高潮白浆女日韩av免费看| 91精品视频免费观看| 欧美日韩另类在线| 4444欧美成人kkkk| 97在线观看视频国产| 欧美电影第一页| 91精品久久久久久久久不口人| 2019中文字幕免费视频| 日韩精品免费在线观看| 成人情趣片在线观看免费| 国产精品国产三级国产aⅴ9色| 亚洲女人天堂视频| 4444欧美成人kkkk| 精品中文字幕久久久久久| 国产亚洲欧美日韩美女| 日韩av最新在线| 久久全球大尺度高清视频| 成人免费在线网址| 久久电影一区二区| 成人网在线免费观看| 欧美精品在线观看91| 欧美肥老太性生活视频| 欧美色欧美亚洲高清在线视频| 久久亚洲春色中文字幕| 亚洲成人在线网| 中日韩午夜理伦电影免费| 日韩精品欧美国产精品忘忧草| 色狠狠av一区二区三区香蕉蜜桃| 日韩av大片在线| 国产综合久久久久久| 一个人看的www久久| 日韩h在线观看| 亚洲人a成www在线影院| 夜夜嗨av色综合久久久综合网| 国产精品丝袜久久久久久高清| 91久久嫩草影院一区二区| 日韩在线小视频| 欧美大胆在线视频| 久久久国产成人精品| 国产精品视频区| 国产精品网址在线| 一区二区三区亚洲| 2020国产精品视频| 亚洲精品国产综合久久| 俺去啦;欧美日韩| 成人黄色免费看| 国产精自产拍久久久久久蜜| www.欧美精品一二三区| 亚洲天堂影视av| 亚洲日韩欧美视频一区| 国产精品影片在线观看| 亚洲综合社区网| 另类专区欧美制服同性| 亚洲人成电影网站色…| 色黄久久久久久| 亚洲视频电影图片偷拍一区|