1. 程式人生 > >linux安裝極速飛艇程序一條龍服務部署Nginx

linux安裝極速飛艇程序一條龍服務部署Nginx

export 支持 代理 fin 配置 count 操作系統 修改 server

一、BIN包極速飛艇程序一條龍服務QQ2952777280

獲取最新的安裝包,使用winscp或者lrzsz軟件上傳至服務器,

復制代碼
[root@localhost ~]# sha256sum Nginx_INSTALL_2016-11-05_00-03-15.bin #計算文件sha值,文件名稱以官網的為準
c39728537943b1d263da0d92a5af2824a21924437c955872bee58cda4b2ce336 Nginx_INSTALL_2016-11-05_00-03-15.bin
#上面的一長串的字符就是我們要對比的內容
[root@localhost ~]# sh Nginx_INSTALL_2016-11-05_00-03-15.bin #執行安裝操作

#######省略輸出########
clean the install tmp files......
try start the nginx...
Starting nginx (via systemctl): [ OK ]
start_success
try stop the nginx...
Stopping nginx (via systemctl): [ OK ]
stop success
復制代碼

出現如上信息表示安裝成功,使用BIN包安裝後,我們會幫你嘗試啟動服務並檢測是否啟動,如果再次執行安裝命令

[root@localhost ~]# sh Nginx_INSTALL_2016-11-05_00-03-15.bin #再次執行安裝命令
.........省略輸出.........

we find nginx is install,you want reinstall?[y/n] #請輸入yn選擇是否重新安裝
如果確認重新安裝,我們會將已有的nginx.conf文件備份為/root/nginx.conf.bak文件,且會自動加載到開機自啟動項中

[root@localhost ~]# chkconfig --list #檢查是否設置開機啟動項
...................省略輸出...................

netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off #出現該項就可以了
BIN包操作系統支持範圍如下

該BIN包目前支持的的操作系統如下,這裏需要著重註意,BIN包支持安裝的前提是系統需要最小化安裝,如果未最小化安裝肯定安裝不成功!

二、源碼編譯安裝

使用官網的源碼編譯安裝Nginx,首先獲取官方源碼,我們需要準備的材料如下

2.1、安裝系統依賴包

該步驟需要連接網絡,且要可以使用yum源,對於RedHat的為授權用戶可能需要進行換源操作

復制代碼
[root@localhost ~]# yum install gcc openssl openssl-devel zlib zlib-devel pcre pcre-devel patch GeoIP GeoIP-devel #安裝依賴包

#gcc:編譯源碼時需要
#openssl openssl-devel:配置ssl證書時需要,為了網站應用的安裝,建議安裝
#zlib zlib-devel:如果啟動gzip壓縮功能,則必須安裝該包,為了更好的網絡傳輸效率,建議安裝
#pcre pcre-devel:如果需要使用Nginx的rewrite功能則需要安裝包,在主流的網站類應用中可能會需要用到,建議安裝
#patch:打Nginx補丁包時需要使用到
#GeoIP GeoIP-devel:實現Nginx定位地理位置信息的依賴包

#如果你的操作系統是Centos7.0或者RedHat7.0的需要更新一下systemd這個系統包,以解決開機啟動項的問題
[root@localhost redis-3.0.6]# yum update systemd
復制代碼
2.2、上傳源碼包並檢查防火墻與selinux的設置

復制代碼
[root@localhost ~]# setenforce 0 # 臨時關閉selinx
[root@localhost ~]# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/sysconfig/selinux #修改selinux的配置文件,下次重啟時生效
[root@localhost ~]# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/selinux/config

#關閉防火墻,如果想針對特殊端口配置請參照《Linux快速入門手冊》

#Centos7或RedHat7以後關閉防火墻,重啟後會再次開啟
[root@localhost ~]# service firewalld stop
#Centos6或RedHat6關閉防火墻,重啟後會再次開啟
[root@localhost ~]# service iptables stop
復制代碼
2.3、編譯安裝Nginx

請按照上面表格中所列的內容上傳所有的編譯文件至服務器的/root目錄下

復制代碼
#編譯安裝libmaxminddb
[root@node1 ~]# tar -zxvf libmaxminddb-1.2.0.tar.gz
[root@node1 ~]# cd libmaxminddb-1.2.0
[root@node1 ~]# ./configure && make && make install
[root@node1 ~]# cp -rf /usr/local/include/maxminddb*.h /usr/include/
[root@node1 ~]# ldconfig /usr/local/lib #此步驟必須做因為部分系統可能出現無法加載依賴庫的問題

#解壓安裝包

[root@localhost ~]# tar -zxvf nginx-1.10.3.tar.gz
[root@localhost ~]# tar -zxvf nginx_upstream_check_module.tar.gz
[root@localhost ~]# tar -zxvf nginx-module-vts.tar.gz
[root@localhost ~]# tar -zxvf ngx_http_geoip2_module-2.0.tar.gz
[root@localhost ~]# cd nginx-1.10.3 #必須要進入到nginx的源碼目錄中,因為下面的打布丁步驟與目錄路徑密切相關
[root@localhost nginx-1.10.3]# patch -p0 < ../nginx_upstream_check_module/check_1.9.2+.patch #添加後端健康檢查的補丁
############命令輸出##################
patching file src/http/modules/ngx_http_upstream_hash_module.c
patching file src/http/modules/ngx_http_upstream_ip_hash_module.c
patching file src/http/modules/ngx_http_upstream_least_conn_module.c
patching file src/http/ngx_http_upstream_round_robin.c
patching file src/http/ngx_http_upstream_round_robin.h

#開始編譯Nginx,啟用性能監控插件,後端檢查插件,安裝置/opt/nginx1.10.3
[root@localhost nginx-1.10.3]# ./configure --with-stream --add-module=../nginx_upstream_check_module --add-module=../nginx-module-vts --add-module=../ngx_http_geoip2_module-2.0 --with-http_ssl_module --prefix=/opt/nginx1.10.3
[root@localhost nginx-1.10.3]# make
[root@localhost nginx-1.10.3]# make install

####Nginx的配置工作
[root@localhost ~]# ln -s /opt/nginx1.10.3 /usr/local/nginx #在/usr/local目錄下創建一個nginx的鏈接,服務的啟動腳本依賴該目錄
[root@localhost ~]# cp -rf nginx.conf /usr/local/nginx/conf/ #將配置模板文件覆蓋默認配置文件
cp: overwrite ‘/usr/local/nginx/conf/nginx.conf’? y #確認覆蓋
[root@localhost ~]# cp htpasswd /usr/local/nginx/conf/ #復制密碼文件至配置文件目錄,如果沒有該文件會導致性能監控插件頁面打不開
[root@localhost ~]# cp -rf GeoLite2-City.mmdb /usr/local/nginx/conf/ #將地理位置書庫拷貝至默認配置文件文件夾
[root@localhost ~]# cp -rf GeoLite2-Country.mmdb /usr/local/nginx/conf/ #將地理位置數據庫拷貝至默認配置文件文件夾
[root@localhost ~]# echo ‘export PATH=/usr/local/nginx/sbin:$PATH‘ >> /etc/profile && source /etc/profile #將Nginx安裝路徑加入到環境變量中
[root@localhost ~]# cp nginx /etc/init.d/ #拷貝Nginx的啟動腳本以註冊服務
[root@localhost ~]# chmod +x /etc/init.d/nginx #賦予啟動腳本可執行權限
[root@localhost ~]# useradd -r -M nginx # 添加一個nginx用戶
[root@localhost ~]# chmod +x -R /usr/local/nginx # 給nginx安裝目錄添加可執行權限
[root@localhost ~]# chkconfig nginx on #設置nginx隨機啟動
復制代碼
三、驗證是否安裝成功
按照前面的章節完成Nginx的安裝,不管是BIN包還是編譯安裝都支持如下方式啟動與停止Nginx

service nginx start # 啟動Nginx
service nginx stop # 停止Nginx
service nginx restart # 重新啟動Nginx
為了檢驗是否安裝成功,可以在瀏覽器端輸入http://ip:port/xxx訪問地址, 輸入用戶名和密碼即可見如下圖所示的監控數據表示安裝成功

四、卸載
不管使用BIN包安裝還是編譯安裝,卸載Nginx的方式是一樣的,刪除安裝文件即可,但是如果代理一些靜態網站,則需要將網站目錄事先備份出來。

[root@localhost ]# service nginx stop # 停止正在運行的Nginx
[root@localhost ]# rm -rf /opt/nginx1.10.3
[root@localhost ]# rm -rf /usr/local/nginx
[root@localhost ]# rm -rf /etc/init.d/nginx
五、Nginx高可用配置
配置Nginx的高可用之前請確認正確安裝部署單臺服務器上的Nginx。Nginx高可用的實現借助於keepalived,因此配置Nginx的關鍵在於安裝與配置keepalived。

5.1、編譯安裝部署keepalived

需要在集群內每一臺服務器上安裝配置keepalived。從官網獲取到keepalived的安裝部署包。具體的安裝材料需求如下:

復制代碼
[root@localhost ~]# yum install gcc openssl openssl-devel popt popt-devel #編譯與功能依賴包
[root@localhost ~]# tar -zxvf keepalived-1.2.16.tar.gz #解壓安裝部署包
[root@localhost keepalived-1.2.16]# cd keepalived-1.2.16
#編譯安裝keepalived
[root@localhost keepalived-1.2.16]# ./configure
[root@localhost keepalived-1.2.16]# make
[root@localhost keepalived-1.2.16]# make install
[root@localhost keepalived-1.2.16]# cp /usr/local/sbin/keepalived /usr/sbin/
[root@localhost keepalived-1.2.16]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
[root@localhost keepalived-1.2.16]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
[root@localhost keepalived-1.2.16]# chmod +x /etc/init.d/keepalived
[root@localhost keepalived-1.2.16]# chkconfig keepalived on
[root@localhost keepalived-1.2.16]# mkdir /etc/keepalived
復制代碼
5.2、配置Nginx高可用

主節點的配置

如上圖所示,首先在Nginx_Master節點上配置keepalived。

復制代碼
[root@localhost ~]# vi /etc/keepalived/keepalived.conf #創建keepalived的配置文件

#####配置文件內容###########
! Configuration File for keepalived

global_defs {
notification_email {#[email protected]
br/>#[email protected]
#notification_email_from [email protected]
#smtp_server smtp.example.com
#smtp_connect_timeout 30
router_id nginx_master
}

vrrp_script chk_http_port {
script "</dev/tcp/127.0.0.1/80" #監控本地Nginx端口,根據實際配置
interval 1
weight -10
}

vrrp_instance VI_1 {
state MASTER #主服務器
interface eth0 #通信網卡,根據實際配置
virtual_router_id 51 #路由標識,同網段內不可沖突且需與備用服務器一致
priority 100 #優先級,0-254
advert_int 1
authentication {
auth_type PASS
auth_pass qwe123!@#
}
virtual_ipaddress {
192.168.202.200 #虛擬IP,根據實際配置
}
track_script {
chk_http_port
}
}
[root@localhost ~]# service keepalived start #啟動keepalived服務
復制代碼
從節點的配置

編輯從節點的keepalived配置文件。

復制代碼
[root@localhost ~]# vi /etc/keepalived/keepalived.conf #創建keepalived的配置文件

#####配置文件內容###########
! Configuration File for keepalived

global_defs {
notification_email {#[email protected]
br/>#[email protected]
#notification_email_from [email protected]
#smtp_server smtp.example.com
#smtp_connect_timeout 30
router_id nginx_backup
}

vrrp_script chk_http_port {
script "</dev/tcp/127.0.0.1/80" #監控本地Nginx端口
interval 1 #執行間隔
weight -10 #執行失敗,服務優先級-10
}

vrrp_instance VI_1 {
state BACKUP #備用服務器
interface eth0 #通信網卡,根據實際配置
virtual_router_id 51 #路由標識,需與主服務器一致,同網段內不可沖突
priority 99 #優先級,比主服務器要低,0-254
advert_int 1
authentication {
auth_type PASS
auth_pass qwe123!@#
}
virtual_ipaddress {
192.168.202.200 #虛擬IP,根據實際配置
}
track_script {
chk_http_port
}
}
[root@localhost ~]# service keepalived start #啟動keepalived服務
復制代碼
分別在主服務器和從服務器上依次啟動nginx與keepalived`服務即可啟用高可用構架。

如何檢驗高可用構架
首先按照上節所說的配置配置好keepalived,並按照順序啟動服務,檢測方法如下。

在主服務器上使用ip addr查看主服務器是否獲取到虛擬IP
復制代碼
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN #本地網卡不用看
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 #網卡名為你配置文件中的值
link/ether 08:00:27:49:7c:9c brd ff:ff:ff:ff:ff:ff
inet 192.168.149.177/24 brd 192.168.149.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet 192.168.149.190/32 scope global enp0s3 #虛擬IP
valid_lft forever preferred_lft forever
復制代碼
確認好虛擬IP已經綁定在指定網卡上,在瀏覽器中鍵入http://虛擬IP:port/xxx能夠看到監控頁面即可,完成以上檢測方可進行第二步配置,否則請檢查你的配置是否按照文檔進行配置。

確認單臺服務器能夠正確訪問,可以將主服務器nginx服務停止,再次使用ip addr觀察虛擬IP是否在綁定網卡上(正確的狀態是不應該存在),確認不存在後,在從服務器上使用ip addr查看虛擬ip是否切換到從服務器上(方法同主服務器上的操作),確認虛擬IP存在後再次訪問http://虛擬IP:port/xxxx如果依然可用即可證明高可用的Nginx配置成功!

行動——岸上的人永遠學不會遊泳

linux安裝極速飛艇程序一條龍服務部署Nginx