linux中的nginx是什么

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

linux中的nginx是什么

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

nginx是什么

Apache?靜態資源服務器?

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

nginx是一個使用c語言開發的高性能的http服務器及反向代理服務器。Nginx是一款高性能的http 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器。由俄羅斯的程序設計師Igor Sysoev所開發,官方測試nginx能夠支支撐5萬并發鏈接,并且cpu、內存等資源消耗卻非常低,運行非常穩定。

正向代理:
linux中的nginx是什么
反向代理:
linux中的nginx是什么
反向代理一般是用在服務器端 ,做請求的分發 ,能實現負載均衡。

Nginx的應用場景

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

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

基于端口的,不同的端

基于域名的,不同域名

3、 反向代理,負載均衡。當網站的訪問量達到一定程度后,單臺服務器不能滿足用戶的請求時,需要用多臺服務器集群可以使用nginx做反向代理。并且多臺服務器可以平均分擔負載,不會因為某臺服務器負載高宕機而某臺服務器閑置的情況。

nginx 單擊版安裝 啟動 服務

1、安裝nginx 服務需要的插件

yum?install?-y?yum-utils

linux中的nginx是什么

2、安裝nginx

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

linux中的nginx是什么
然后再創建一個nginx.repo的文件:

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

安裝好了:

linux中的nginx是什么
nginx服務的管理命令:

systemctl start/stop/restart/status nginx
linux中的nginx是什么

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

selinux是linux的安全服務套件

修改 vi /etc/selinux/config文件,修改如下內容:
linux中的nginx是什么
修改過之后,必須重啟linux。
nginx 配置文件:
linux中的nginx是什么
linux中的nginx是什么

我們以后經常修改的配置文件是/etc/nginx/conf.d/default.conf:

linux中的nginx是什么

使用nginx 做負載均衡

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

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

先配置jdk環境變量:
linux中的nginx是什么
linux中的nginx是什么
然后 保存退出 ,在命令行執行 source 命令 編譯環境變量文件,讓環境變量立刻生效:
linux中的nginx是什么
tomcat 啟動:linux中的nginx是什么
linux中的nginx是什么
第二步,準備兩個tomcat 一個端口號弄成8000 另外一個9000
linux中的nginx是什么
linux中的nginx是什么
linux中的nginx是什么
第三步,修改nginx的配置文件
沒有安裝vim,使用vi命令
linux中的nginx是什么
linux中的nginx是什么
然后重啟nginx服務:
linux中的nginx是什么

nginx支持的負載均衡的策略

輪詢策略

默認nginx支持的策略,來了請求之后 排隊把請求一個一個的分發出去。

權重策略
linux中的nginx是什么
IP_HASH方式

根據 客戶端ip地址 固定分配到一臺服務器上,以后這個ip來的所有請求 都會只到這一個服務器上。
linux中的nginx是什么

使用keepalived 完成 nginx 高可用配置

linux中的nginx是什么
上面我們實現的集群方式 可以解決tomcat 服務器單點故障的問題,但是解決不了 nginx服務器單點故障的問題。

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

先安裝keepalived服務:
linux中的nginx是什么
linux中的nginx是什么
下面修改keepalived的配置文件: vim /etc/keepalived/keepalived.conf文件:

global_defs?{? 	notification_email?{? 		#keepalived如果檢測到nginx服務不能用會往這個郵件發信心? 		test@163.com? 	} 	#配置郵件服務器的信息? 	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

創建好這個腳本之后 不要忘記修改文件的權限:

linux中的nginx是什么
下面啟動keepalived服務:

systemctl?start?keepalived

相關推薦:《Linux視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享