linux中的nginx是什麼

2022-03-09 16:01:00

在linux中,nginx是一個高效能的HTTP和反向代理web伺服器,是一款高效能的http伺服器、反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。

本教學操作環境:linux5.9.8系統、Dell G3電腦。

nginx是什麼

Apache 靜態資源伺服器

nginx 是一個 反向代理的 靜態資源伺服器 。

nginx是一個使用c語言開發的高效能的http伺服器及反向代理伺服器。Nginx是一款高效能的http 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。由俄羅斯的程式設計師Igor Sysoev所開發,官方測試nginx能夠支支撐5萬並行連結,並且cpu、記憶體等資源消耗卻非常低,執行非常穩定。

正向代理:
在這裡插入圖片描述
反向代理:
在這裡插入圖片描述
反向代理一般是用在伺服器端 ,做請求的分發 ,能實現負載均衡。

Nginx的應用場景

1、 http伺服器。Nginx是一個http服務可以獨立提供http服務。可以做網頁靜態伺服器。

2、 虛擬主機。可以實現在一臺伺服器虛擬出多個網站。例如個人網站使用的虛擬主機。

基於埠的,不同的端

基於域名的,不同域名

3、 反向代理,負載均衡。當網站的存取量達到一定程度後,單臺伺服器不能滿足使用者的請求時,需要用多臺伺服器叢集可以使用nginx做反向代理。並且多臺伺服器可以平均分擔負載,不會因為某臺伺服器負載高宕機而某臺伺服器閒置的情況。

nginx 單擊版安裝 啟動 服務

1、安裝nginx 服務需要的外掛

yum install -y yum-utils

在這裡插入圖片描述

2、安裝nginx

在官方yum源中也是沒有nginx的,但是我們可以在本機去設定nginx的yam源,來實現nginx 的yum安裝。

在這裡插入圖片描述
然後再建立一個nginx.repo的檔案:

[nginx]
 name=nginx repo
 baseurl=http://nginx.org/packages/centos/7/$basearch/
 gpgcheck=0
 enabled=1

安裝好了:

在這裡插入圖片描述
nginx服務的管理命令:

systemctl start/stop/restart/status nginx
在這裡插入圖片描述

3、需要關閉linux 作業系統的selinux 服務

selinux是linux的安全服務套件

修改 vi /etc/selinux/config檔案,修改如下內容:
在這裡插入圖片描述
修改過之後,必須重新啟動linux。
nginx 組態檔:
在這裡插入圖片描述
在這裡插入圖片描述

我們以後經常修改的組態檔是/etc/nginx/conf.d/default.conf:

在這裡插入圖片描述

使用nginx 做負載均衡

下載完壓縮包通過xftp傳到linux的opt資料夾下,進行解壓

第一步,首先要在我們linux伺服器上啟動兩個tomcat

先設定jdk環境變數:
在這裡插入圖片描述
在這裡插入圖片描述
然後 儲存退出 ,在命令列執行 source 命令 編譯環境變數檔案,讓環境變數立刻生效:
在這裡插入圖片描述
tomcat 啟動:在這裡插入圖片描述
在這裡插入圖片描述
第二步,準備兩個tomcat 一個埠號弄成8000 另外一個9000
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
第三步,修改nginx的組態檔
沒有安裝vim,使用vi命令
在這裡插入圖片描述
在這裡插入圖片描述
然後重新啟動nginx服務:
在這裡插入圖片描述

nginx支援的負載均衡的策略

輪詢策略

預設nginx支援的策略,來了請求之後 排隊把請求一個一個的分發出去。

權重策略
在這裡插入圖片描述
IP_HASH方式

根據 使用者端ip地址 固定分配到一臺伺服器上,以後這個ip來的所有請求 都會只到這一個伺服器上。
在這裡插入圖片描述

使用keepalived 完成 nginx 高可用設定

在這裡插入圖片描述
上面我們實現的叢集方式 可以解決tomcat 伺服器單點故障的問題,但是解決不了 nginx伺服器單點故障的問題。

解決nginx 單點故障問題,市場上通用的解決方案就是使用keepalived 這種外掛。

先安裝keepalived服務:
在這裡插入圖片描述
在這裡插入圖片描述
下面修改keepalived的組態檔: vim /etc/keepalived/keepalived.conf檔案:

global_defs { 
	notification_email { 
		#keepalived如果檢測到nginx服務不能用會往這個郵件發信心 
		[email protected] 
	}
	#設定郵件伺服器的資訊 
	notification_email_from keepalived@localhost 
	smtp_server 127.0.0.1 
	smtp_connect_timeout 30 
	router_id LVS_MASTER
}
#宣告一個指令碼 
vrrp_script chk_http_port { 
	#檢測本機nginx的服務是否能用的指令碼 這個指令碼等下要自己編寫 
	script "/usr/local/src/check_nginx_pid.sh" 
	#每隔多長時間自動呼叫上述指令碼 
	interval 2 
	#權重 
	weight 2 
}
vrrp_instance VI_1 { 
	#state MASTER 
	#設定當前的nginx伺服器是主機還是備機 
	state BACKUP 
	#設定當前nginx服務是是否非搶佔模式 
	#nopreempt 
	#設定心跳網路卡的名稱 
	interface ens33 
	#所有的keepalived的伺服器的虛擬化路由都要一致 
	virtual_router_id 50 
	#nginx伺服器的初始化權重 
	priority 100
	#心跳連線傳送的間隔 
	advert_int 1 
	#認證方式和認證密碼 要保證所有keepalive的伺服器的驗證方式和密碼都一樣 
	authentication { 
		auth_type PASS 
		auth_pass 1111 
	}
	#啟用上述指令碼 
	track_script {
		 chk_http_port 
	}
	virtual_ipaddress { 
		#設定了keeplived伺服器之後再存取tomcat叢集虛擬的ip地址時多少
		192.168.17.222 
		#虛擬ip 
	} 
}

下一步,寫/usr/local/src/check_nginx_pid.sh這個指令碼:

#! /bin/bash 
A=`ps -C nginx --no-header |wc -l` 
if [ $A -eq 0 ];then 
systemctl start nginx 
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then 
killall keepalived 
fi
fi

建立好這個指令碼之後 不要忘記修改檔案的許可權:

在這裡插入圖片描述
下面啟動keepalived服務:

systemctl start keepalived

相關推薦:《Linux視訊教學

以上就是linux中的nginx是什麼的詳細內容,更多請關注TW511.COM其它相關文章!