1,Nginx基本概念
1.1,Nginx是什么,做什么事情 Nginx簡介
參考官網:http://nginx.org/en/
Nginx (engine x) 是一個HTTP 和反向代理服務器、一個郵件代理服務器和一個通用的 TCP/UDP 代理服務器,特點是占用記憶體少,并發能力強,能支撐50,000個并發連接數,
Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,
1.2,反向代理
正向代理
客戶端中配置代理服務器,通過代理服務器訪問互聯網服務的程序,可以稱之為正向代理,
反向代理
客戶端通過方向代理服務器去訪問服務器資源,并回傳給客戶端的程序,可以稱之為反向代理,
隱藏了目標服務器的ip地址
1.3,負載均衡
客戶端發送多個請求到代理服務器,通過代理服務器處理,分發訪問目標服務器,
1.4,動靜分離
把動態頁面和靜態頁面由不同的服務器來決議,加快決議速度,降低原來單個服務器的壓力,
2,Nginx在Linux系統部署,常用命令和組態檔
2.1,在linux系統中安裝nginx
nginx安裝包下載網址
http://nginx.org/en/download.htmlnginx
nginx在liunx部署步驟
參考此作者部署 :
https://blog.csdn.net/t8116189520/article/details/81909574
## 1.安裝依賴包
## 一鍵安裝上面四個依賴
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
## 2.下載并解壓安裝包
//創建一個檔案夾
cd /usr/local
mkdir nginx
cd nginx
//下載tar包
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.gz
## 3.安裝nginx
//進入nginx目錄
cd /usr/local/nginx
//進入目錄
cd nginx-1.13.7
//執行命令
./configure
//執行make命令 執行make install命令
make && make install
## 4.配置nginx.conf
# 打開組態檔
vi /usr/local/nginx/conf/nginx.conf
## 將埠號改成8080,因為可能apeache占用80埠,apeache埠盡量不要修改,我們選擇修改nginx埠,
## localhost修改為你服務器ip地址,
server {
listen 8001;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
}
## 5.進入/usr/local/nginx/sbin/,啟動nginx服務
./nginx
## 6,撰寫啟動Nginx服務腳本
vim /usr/local/nginx/start_nginx.sh
##添加如下內容
#!/bin/sh
cd /usr/local/nginx/sbin
./nginx
ps aux | grep nginx
## 7,撰寫關閉Nginx服務腳本
vim /usr/local/nginx/stop_nginx.sh
##添加如下內容
#!/bin/sh
cd /usr/local/nginx/sbin
./nginx -s stop
Nginx服務啟動之后會有兩個行程

2.2,Nginx常用命令
1,必須進入 /usr/local/nginx/sbin 目錄下操作命令
2,查看nginx版本:./nginx -v
3,啟動nginx:./nginx
4,關閉nginx:./nginx -s stop
5,重加載命令 :./nginx -s reload
2.3,Nginx組態檔
1.nginx組態檔由三部分組成
(1)全域塊
## 從組態檔開發到events塊之間的內容,主要設定一些影響nginx服務器整體運行的配置指令:
## 比如:worker_processes 1;nginx處理并發的數量,值越大,可以支持的并發處理量越大,
worker_processes 1
(2)events塊
## events塊設計的指令主要影響Nginx服務器與用戶的網路連接:
## 比如:worker_connections 1024;支持的最大連接數
worker_connections 1024
(3)http塊
## Nginx服務器配置中最頻繁的部分;
## http塊也可以包括http全域塊,server塊,
http {
include mime.types;
default_type application/octet-stream;
server {
listen 8081;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
3,Nginx配置實體1-反向代理
1.實作效果
(1) 打開瀏覽器,在瀏覽器地址欄輸入地址 www.123.com,跳轉linux系統tomcat主頁面中
2.準備作業
(1)在linux系統安裝tomcat,使用默認埠8080
* tomcat安裝檔案當道linux系統中,解壓,進入tomcat的bin目錄中,./startup.sh啟動tomcat服務器
(2)對外開放訪問的埠
* firewall-cmd --add-service=http --permanent
* firewall-cmd --add-port=8080/tcp --permanent
(3)重啟防火墻
* firewall-cmd -reload
(4)查看開放的埠號
* firewall-cmd --list-all
#防火墻相關操作
[root@room8pc205 ~]# firewall-cmd --state //查看運行狀態
[root@room8pc205 ~]# systemctl start firewalld //啟動服務
[root@room8pc205 ~]# systemctl enable firewalld //設為開機啟動
[root@room8pc205 ~]# systemctl status firewalld //查看是否啟動成功
(5)在windows系統中通過瀏覽器訪問tomcat服務器
3.1,配置反向代理一:

3.2,配置反向代理二:
使用nginx反向代理,實作根據訪問的路勁跳轉到不同的埠服務中,Nginx監聽9001埠
訪問http://192.168.0.31:9100/edu/ 直接跳轉 127.0.0.1:8080
訪問http://192.168.0.31:9100/vof/ 直接跳轉 127.0.0.1:8081

3.3,測驗效果


4,Nginx配置實體2-負載均衡
4.1,在http塊中配置
http{
......
upstream myserver{ #負載均衡服務器,轉發的服務器
server 192.168.0.31:8080;
server 192.168.0.31:8081;
}
server {
listen 80;
server_name 192.168.0.31;
location / {
proxy_pass http://myserver;
}
......
}
4.2,Nginx負載均衡策略
1,輪詢(默認)
每個請求按時間順序逐一分配到不同的后端服務器,如果有服務器掛掉,則自動剔除;
2,weight
代表權重,默認為1,權重越高,被分配的客戶端越多;
upstream myserver{
server 192.168.0.31:8080 weight 5;
server 192.168.0.31:8081 weight 10;
}
3,ip_hash
每個請求按訪問ip的hash結果分配,這樣每個固定訪問一個后端服務器,可以解決session問題;
upstream myserver{
ip_hash;
server 192.168.0.31:8080 ;
server 192.168.0.31:8081 ;
}
4,fair(第三方)
按照后端服務器回應時間來分配請求,回應時間短越優先分配;
upstream myserver{
server 192.168.0.31:8080 ;
server 192.168.0.31:8081 ;
fair;
}
5,Nginx配置實體3-動靜分離
location /www/ {
root /static_file/;
index index.html index.htm;
}
location /image/ {
root /static_file/;
autoindex on;
}

測驗結果
http://192.168.0.31/image/13.jpg
http://192.168.0.31/www/a.html
6,Nginx + keepalived搭建Nginx高可用集群
6.1,keepalived介紹
參考官網:https://www.keepalived.org/index.html
Keepalived 是一個用 c 撰寫的路由軟體,這個專案的主要目標是為 Linux 系統和基于 Linux 的基礎架構提供簡單而健壯的負載平衡和高可用性設施,負載平衡框架依賴于廣泛使用的 Linux Virtual Server (IPVS)內核模塊,提供了 Layer4負載平衡,Keepalived 實作了一組檢查器,根據負載均衡服務器池的健康狀況動態地、自適應地維護和管理它們,另一方面通過 VRRP 協議實作高可用性,VRRP 是路由器故障轉移的基本單元,此外,Keepalived 實作了一組連接到 VRRP 有限狀態機的鉤子,提供低級和高速的協議互動,為了提供最快的網路故障檢測,Keepalived 實作了 BFD 協議,VRRP 狀態轉換可以考慮 BFD 提示驅動快速狀態轉換,Keepalived 框架可以單獨使用,也可以一起使用,以提供彈性基礎架構,
## nginx本身不具有搭建集群,但可以橫向擴展
7,Nginx執行原理
1,master 和 worker 兩個行程
2,一個master和多個worker的好處
(1),可以使用 nginx -s reload 進行熱部署,利用nginx進行熱部署操作;
(2),woker是獨立行程,某個woker掛掉也不會造成服務中斷;無需加鎖,省去加鎖開銷;
3,設定多少個woker才是最合適的
(1)nginx采用io多路復用機制
(2)worker數和 服務器的 cpu 數相等最為合適,
4,連接數 worker_connection
(1) 第一個:發送請求,占用了worker的幾個連接數 2個或4個
(2)第二個,nginx有一個master,4個worker,每個worker最大連接數時候1024,支持的最大并發數是多少?
(3)普通靜態訪問:worer_connections * worker_process / 2
(4)http作為反向代理:worer_connections * worker_process / 4

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/304876.html
標籤:其他
上一篇:【1】計算機網路概述
