激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

云服務(wù)器|WEB服務(wù)器|FTP服務(wù)器|郵件服務(wù)器|虛擬主機(jī)|服務(wù)器安全|DNS服務(wù)器|服務(wù)器知識(shí)|Nginx|IIS|Tomcat|

服務(wù)器之家 - 服務(wù)器技術(shù) - Nginx - 詳解Nginx + Tomcat 反向代理 負(fù)載均衡 集群 部署指南

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

2019-11-18 16:22郭朝 Nginx

Nginx是一種服務(wù)器軟件,也是一種高性能的http和反向代理服務(wù)器,本篇文章主要介紹了Nginx + Tomcat 反向代理 負(fù)載均衡 集群 部署指南,有興趣的可以了解一下。

Nginx是一種服務(wù)器軟件,也是一種高性能的http和反向代理服務(wù)器,同時(shí)還是一個(gè)代理郵件服務(wù)器。也就是說(shuō),我們?cè)贜ginx上可以發(fā)布網(wǎng)站,可以實(shí)現(xiàn)負(fù)載均衡(提高應(yīng)答效率,避免服務(wù)器崩潰),還可以作為郵件服務(wù)器實(shí)現(xiàn)收發(fā)郵件等功能。而最常見(jiàn)的就是使用Nginx實(shí)現(xiàn)負(fù)載均衡。

Nginx與其他服務(wù)器的性能比較:

Tomcat服務(wù)器面向Java語(yǔ)言,是重量級(jí)的服務(wù)器,而Nginx是輕量級(jí)的服務(wù)器。Apache服務(wù)器穩(wěn)定、開(kāi)源、跨平臺(tái),但是Apache服務(wù)器不支持高并發(fā),Nginx能支持處理百萬(wàn)級(jí)的TCP連接,10萬(wàn)以上的并發(fā)連接,并且是一個(gè)很好的跨平臺(tái)服務(wù)器。
Nginx主要優(yōu)點(diǎn)有可以實(shí)現(xiàn)高并發(fā)、部署簡(jiǎn)單、內(nèi)存消耗少、成本低等,主要缺點(diǎn)有rewrite功能不夠強(qiáng)大,模塊沒(méi)有Apache的多。

本篇主要講解 Nginx + Tomcat 反向代理和負(fù)載均衡的部署,以通俗實(shí)用為主。本篇文章每個(gè)部分之間沒(méi)有太大關(guān)系,可根據(jù)需求分開(kāi)學(xué)習(xí)。

下來(lái)看一下Nginx反向代理的過(guò)程:

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

Nginx負(fù)載均衡的過(guò)程(會(huì)自動(dòng)選擇壓力較小的服務(wù)器進(jìn)行訪問(wèn)):

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

可以看出,負(fù)載均衡是通過(guò)反向代理的原理實(shí)現(xiàn)的,所以也稱(chēng) 反向代理的負(fù)載均衡 。所以我們會(huì)部署負(fù)載均衡,那么反向代理也就會(huì)了。

總的來(lái)說(shuō),負(fù)載均衡實(shí)現(xiàn)的方式分為軟件實(shí)現(xiàn)和硬件實(shí)現(xiàn)兩種,硬件實(shí)現(xiàn)運(yùn)行的效率非常高,但是對(duì)應(yīng)的成本也非常高。軟件實(shí)現(xiàn)運(yùn)行效率不如硬件,但是成本相對(duì)來(lái)說(shuō)低得多。而使用Nginx服務(wù)器實(shí)現(xiàn)負(fù)載均衡,那么就是通過(guò)軟件的方式來(lái)實(shí)現(xiàn)負(fù)載均衡,并且Nginx本身支持高并發(fā)等。故而使用Nginx服務(wù)器實(shí)現(xiàn)負(fù)載均衡,能大大節(jié)約企業(yè)的成本,并且由于Nginx是服務(wù)器軟件,其執(zhí)行效率也是非常高。本篇的目的也就是幫助大家使用Nginx實(shí)現(xiàn)負(fù)載均衡。

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

如下圖,通過(guò)反向代理我們實(shí)現(xiàn)下面的負(fù)載均衡,這里我們 假定 四臺(tái)服務(wù)器公網(wǎng)的ip,一臺(tái)做代理服務(wù)器,三臺(tái)做負(fù)載均衡下的服務(wù)器:

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

好了,整體架構(gòu)已經(jīng)基本上清晰了,下來(lái)我們來(lái)具體實(shí)現(xiàn)下:

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

1.Linux下搭建Nginx服務(wù)器

我們?cè)?192.168.2.20 這臺(tái)服務(wù)器上搭建Nginx服務(wù)器:

1)下載Nginx 

2)上傳服務(wù)器Nginx安裝包

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

3)安裝Nginx

?
1
2
3
4
$ ssh root@192.168.2.20             //SSH連接
# yum -y install gcc gcc-c++ autoconf automake  //gcc、gcc-c++的庫(kù)文件
# yum install -y pcre pcre-devel         //安裝Nginx依賴(lài)包
# yum install -y zlib zlib-devel

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

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

檢驗(yàn)是否完成安裝:

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

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

2.Nginx的啟動(dòng)、停止、信號(hào)控制

1)啟動(dòng)Nginx服務(wù)器(格式:Nginx可執(zhí)行文件 -c Nginx配置文件):

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

2)停止Nginx服務(wù)器:

停止Nginx服務(wù)器首先要查詢Nginx的主進(jìn)程號(hào)(master process),假設(shè)此處查詢得到1060(方便下面演示使用):

?
1
# ps -ef|grep nginx

下來(lái)看如何停止Nginx服務(wù)器,停止Nginx有三種方式:

從容停止:

?
1
2
# ps -ef|grep nginx  //查看Nginx的主進(jìn)程號(hào)(master process),假設(shè)此處查詢得到1060
# kill -quit 1060

快速停止:

?
1
# kill -term 1060

強(qiáng)制停止:

?
1
# pkill -9 nginx

3)重啟Nginx服務(wù)器:

當(dāng)我們修改了Nginx配置文件,需要重啟才能生效。我們?cè)谥貑⒅斑€需要驗(yàn)證配置文件的正確性,然后進(jìn)行重啟操作:

?
1
2
# /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf   //驗(yàn)證
# /usr/local/nginx/sbin/nginx -s reload                  //重啟

4)平滑升級(jí)Nginx服務(wù)器

平滑升級(jí)不會(huì)停掉在運(yùn)行著的進(jìn)程,這些進(jìn)程會(huì)繼續(xù)處理請(qǐng)求,但不會(huì)再接受新請(qǐng)求,在這些老進(jìn)程在處理完還在處理的請(qǐng)求后,停止。此平滑升級(jí)的過(guò)程中,新開(kāi)的進(jìn)程會(huì)被處理。這就是平滑升級(jí)。

?
1
# /usr/local/nginx/sbin/nginx -v       //查看當(dāng)前版本

下面進(jìn)行平滑升級(jí):

?
1
2
3
4
5
6
7
8
9
10
# cd /usr/local
# tar -zxvf nginx-1.11.6.tar.gz       //解壓縮 新版本Nginx
# cd nginx-1.11.6              //切換到該目錄下
# ./configure                //配置
# make
# cd /usr/local/nginx/sbin          //打開(kāi) 舊版本Nginx可執(zhí)行文件位置
# cp nginx nginx.old         //備份 舊版本Nginx可執(zhí)行文件,防止升級(jí)錯(cuò)誤而無(wú)法恢復(fù)
# cp -rfp /usr/local/nginx-1.11.6/objs/nginx /usr/local/nginx/sbin   //復(fù)制新版本可執(zhí)行文件到舊版本處
# rm -f /usr/local/nginx-1.11.6.tar.gz    //善后工作 刪除壓縮文件
# rm -rf /usr/local/nginx-1.11.6       //刪除文件夾

至此,Nginx服務(wù)器平滑升級(jí)成功。

3.Nginx中負(fù)載均衡的實(shí)現(xiàn)

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

?
1
2
3
# cd /usr/local/nginx/conf
# touch fzjh.conf
# vi fzjh.conf  //用vi編輯器打開(kāi)文件,然后按鍵盤(pán)的i

注意:vi編輯器中,鍵盤(pán)按 i 進(jìn)入 INSERT 狀態(tài),按 Esc 退出 INSERT 狀態(tài)。

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#設(shè)置低權(quán)限用戶,為了安全而設(shè)置的
user nobody;
 
#工作衍生進(jìn)程數(shù)
worker_processes 4;
 
#設(shè)置錯(cuò)誤文件存放路徑
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
 
#設(shè)置pid存放路徑(pid是控制系統(tǒng)中重要文件)
#pid logs/nginx.pid;
 
#設(shè)置最大連接數(shù)
events{
  worker_connections 1024;
}
 
http{
  #主要是用于設(shè)置一組可以在proxy_pass和fastcgi_pass指令中使用額代理服務(wù)器,默認(rèn)負(fù)載均衡方式為輪詢
  upstream tomcat_client {
    #設(shè)置同一個(gè)cookie的兩次/多次請(qǐng)求,請(qǐng)求的是同一臺(tái)服務(wù)器
    ip_hash;
    #weight權(quán)重,默認(rèn)1,權(quán)重越大訪問(wèn)概率越大,backup備用服務(wù)器,服務(wù)器全部崩潰后啟動(dòng)
    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;
  }
 
  #開(kāi)啟gzip壓縮,開(kāi)啟后,訪問(wèn)網(wǎng)頁(yè)會(huì)自動(dòng)壓縮
  #gzip on;
 
  #指定服務(wù)器的名稱(chēng)和參數(shù)
  server {
    listen 80;
    server_name test.nginxtest.net;
 
    #設(shè)置字符
    #charset koi8-r;
 
    #location / 指用根目錄做負(fù)載均衡
    location / {
      proxy_pass http://tomcat_client;
      proxy_redirect default;
      #設(shè)置代理
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
    }
  }
}

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

?
1
:wq!

就可以保存并退出負(fù)載均衡的配置文件了,下來(lái)我們加載我們的配置文件:

?
1
2
# /usr/local/nginx/sbin/nginx                      //啟動(dòng)Nginx
# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/fzjh.conf    //加載配置文件

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

?
1
# killall -9 nginx

至此,Nginx服務(wù)器部署完畢。下面我們開(kāi)始部署負(fù)載均衡下的那三臺(tái)真實(shí)提供數(shù)據(jù)的服務(wù)器。

4.Linux下安裝jdk

我們?cè)?92.168.2.21、192.168.2.22、192.168.2.23這三臺(tái)服務(wù)器安裝jdk,以192.168.2.21為例:

1)下載jdk

2)上傳服務(wù)器jdk安裝包

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

3)安裝jdk

?
1
2
3
4
5
$ 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編輯器打開(kāi)文件,然后按鍵盤(pán)的i

下來(lái)我們移動(dòng)光標(biāo)至最后面,兩個(gè)回車(chē)換行,然后添加下面代碼配置java的環(huán)境變量:

?
1
2
3
4
5
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,然后輸入:

?
1
:wq!

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

?
1
# source /etc/profile

此時(shí)profile文件就更新了,此時(shí)環(huán)境變量就配置成功了。下面我們驗(yàn)證一下jdk是否安裝配置成功:

?
1
# java -version

如果返回java版本號(hào)則安裝成功。

5.Linux下搭建Tomcat服務(wù)器

我們?cè)?92.168.2.21、192.168.2.22、192.168.2.23這三臺(tái)服務(wù)器搭建Tomcat服務(wù)器,以192.168.2.21為例:

1)下載Tomcat

2)上傳服務(wù)器Tomcat安裝包

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

3)安裝Tomcat

?
1
2
3
4
$ 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)設(shè)置Tomcat網(wǎng)頁(yè)文件目錄

Tomcat默認(rèn)網(wǎng)頁(yè)文件的路徑是 /usr/local/tomcat/webapps/ROOT,但是一般我們不在這里存放,我們?cè)贚inux根目錄新建 data/wwwroot 目錄:

?
1
2
3
4
5
# mkdir /data             //新建目錄
# mkdir /data/www
# mkdir /data/www/ROOT
# cd /usr/local/tomcat/conf
# vi server.xml            //用vi編輯器打開(kāi)server.xml配置文件,打開(kāi)后鍵盤(pán)按i

我們找到Host節(jié)點(diǎn)下的appBase=”webapps”,修改為:appBase="/data/www"

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

?
1
:wq!

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

配置Tomcat環(huán)境變量,我們?cè)谂渲胘dk的時(shí)候已經(jīng)配置好了,可以回頭看一下。

6.Tomcat的啟動(dòng)、停止

1)啟動(dòng)Tomcat服務(wù)器

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

2)停止Tomcat服務(wù)器:

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

到此,Nginx + Tomcat 負(fù)載均衡 集群 已經(jīng)部署完畢了。不過(guò)有了服務(wù)器,肯定也少不了數(shù)據(jù)庫(kù),下面拓展一下Linux下安裝MySQL數(shù)據(jù)庫(kù)的方法。

7.Linux下安裝MySQL數(shù)據(jù)庫(kù)

我們重新找了 192.168.2.30 這臺(tái)服務(wù)器上MySQL數(shù)據(jù)庫(kù):

1)下載MySQL數(shù)據(jù)庫(kù)

2)上傳MySQL數(shù)據(jù)庫(kù)安裝包

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

3)安裝MySQL

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$ 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
//配置,設(shè)置安裝路徑,設(shè)置編譯mysql不帶共享庫(kù),設(shè)置編譯client不帶共享庫(kù),設(shè)置要以rmp的方式安裝tar包,設(shè)置以rmp的方式安裝opensll
 
# make
# make install             //安裝,在make[4]的時(shí)候等待時(shí)間比較長(zhǎng),幾分鐘到十幾分鐘,都是正常現(xiàn)象
 
# /usr/local/mysql/bin/mysql_install_db --user    //對(duì)安裝好的MySQL進(jìn)行初始化
# cp ./support-files/mysql.server /etc/init.d/mysql //將MySQL啟動(dòng)服務(wù)復(fù)制到系統(tǒng)中并重命名為mysql
# cp ./support-files/my-medium.cnf /etc/my.cnf    //復(fù)制規(guī)則文件
# chmod 755 /etc/init.d/mysql            //更改文件權(quán)限
 
//文件權(quán)限由三個(gè)數(shù)字組成,第一位:文件擁有者的權(quán)限,第二位:文件擁有者同組的人的權(quán)限,第三位:文件擁有者非同組人的權(quán)限
//7:可讀可寫(xiě)可執(zhí)行,5:可讀可執(zhí)行
 
# 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所有進(jìn)程號(hào)依次殺死,這里假定是3632
# /usr/local/mysql/bin/mysql_install_db --user=mysql    //再次初始化
# service mysql start                   //啟動(dòng)MySQL
# /usr/local/mysql/bin/mysqladmin -u root password '123456' //設(shè)置MySQL密碼

到此MySQL就安裝成功了,下來(lái)我們測(cè)試一下:

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

如果輸入密碼后可以登進(jìn)MySQL,那么就測(cè)試成功。下面我們?cè)O(shè)置MySQL允許開(kāi)啟遠(yuǎn)程連接:

?
1
2
3
4
5
6
# /usr/local/mysql/bin/mysql -u root -p
 
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
//創(chuàng)建用戶用于遠(yuǎn)程連接(root:用戶名,%:所有電腦都可以連接,也可以設(shè)置某個(gè)ip地址運(yùn)行連接,123456:密碼)
 
mysql> flush privileges;      //立即生效

下面我們查詢一下數(shù)據(jù)庫(kù)的用戶:

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

找一臺(tái)電腦測(cè)試一下,使用Navicat遠(yuǎn)程登錄MySQL,登進(jìn)成功。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://blog.csdn.net/smartbetter/article/details/53535435

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久久久亚洲精品国产 | 成人三级电影网站 | 久久久成人精品 | 视频一区二区视频 | 成人毛片免费视频 | 国产精品久久久久久久久久久久久久久 | 中文国产在线视频 | 日本免费不卡一区二区 | 欧美一级毛片美99毛片 | 欧美人的天堂一区二区三区 | 真人一级毛片免费 | 国产精品视频在线免费观看 | 久草在线视频福利 | 精品一区二区三区欧美 | 99精品视频在线观看免费 | 一级做受大片免费视频 | 久久久久中精品中文字幕19 | 成人不卡一区二区 | 美女被免费网站在线软件 | 免费国产wwwwwww网站 | 国产精品久久久久一区二区 | 在线看毛片的网站 | 亚洲伊人色欲综合网 | 久久蜜桃精品一区二区三区综合网 | 97精品视频在线观看 | 91久久久久久久久久久久久久 | asian裸体佳人pics | 亚洲人片在线观看 | 欧美精品一级 | 国产精品视频一区二区三区四 | 国产午夜亚洲精品 | 亚洲白嫩在线观看 | 精品一区二区三区网站 | 久草在线视频免费播放 | 日本一区二区久久 | 欧美14一15sex性hd | 91美女视频在线观看 | 亚洲国产视频网 | 亚洲精品欧美在线 | 媚药按摩痉挛w中文字幕 | 久久久久久久久淑女av国产精品 |