首頁  >  文章  >  運維  >  linux中的nginx是什麼

linux中的nginx是什麼

青灯夜游
青灯夜游原創
2022-03-09 14:50:433972瀏覽

在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视频教程

以上是linux中的nginx是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn