nginx

2023-12-13 11:08:43

1. nginx的概念

nginx是一种轻量级/高性能的反向代理web服务器,用于HTTP、HTTPS、SMTP、POP3和IMAP协议,他实现非常高效的反向代理、负载均衡,可以支持处理2-3万的并发连接数,官方检测能支持5万并发,目前在中国为主流的web服务器。

2. nginx的优点

1. 跨平台,配置简单

2. 非阻塞,高并发连接:处理2-3万并发连接数,官方检测能支持5万并发

3. 内存消耗小

4. 成本低廉,内存消耗小

5. 稳定性高,宕机概率小

6. 内置健康检查功能

缺点:

nginx有个不太友好的地方是,nginx不方便处理动态资源,可以进行动静分离,将动态请求交给后端程序去进行处理。

3. nginx 应用场景

1.做http服务器:(nginx是一个http服务,http服务可以独立提供http服务,做网页静态服务器)

2.可以做虚拟主机:可以实现一台服务器虚拟出多个网站

3.做反向代理服务器,负载均衡 (反向代理服务器,负载均衡。当网站的访问量达到一定的程度时,单台服务器就不能满足用户的请求,此时需要多台服务器集群,此时可以使用nginx做反向代理,并且多台服务器可以平均分担负载,不会让某台服务器负载高或者闲置。(也可以使用ip hash技术 进行负载均衡分配)

4. 可以做缓存服务器

5. 可以做安全管理

4. nginx和apache的区别

nginx轻量级,同样是起web服务,比apache占用更少的内存和资源。

抗并发,nginx处理请求是异步抗阻塞的而apache是阻塞的再高并发下nginx能保存低资源低消耗高性能。

静态处理,Nginx 静态处理性能比 Apache 高 。
Nginx可以实现无缓存的反向代理加速,提高网站运行速度。
Nginx的性能和可伸缩性不依赖于硬件,Apache依赖于硬件。
Nginx支持热部署,启动速度迅速,可以在不间断服务的情况下,对软件版本或者配置进行升级。
nginx是异步进程,基于事件的web服务器,多个连接对应一个进程 ;apache是同步多进程,基于流程的web服务器,一个连接对应一个进程。
Nginx高度模块化,编写模块相对简单,且组件比Apache少。
核心区别在于apache是同步的多进程模型,一个连接对应一个进程,nginx是异步的,多个连接可对应一个进程。

5. nginx的两个进程

nginx有两个进程:master进程和worker进程

master进程:用于管理worker进程,读取nginx的配置文件信息

worker进程:作为工作进程,处理连接请求

6. 编译nginx

1.关闭防火墙,将安装nginx所需软件包传到/opt目录下

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2.安装依赖包

nginx的配置及运行需要pcre、zlib、openssl等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件。

yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

3. 创建运行用户组

useradd -M -s /sbin/nologin nginx

4.编译安装Nginx

cd /opt
tar zxvf nginx-1.12.2.tar.gz -C /etc
cd nginx-1.12.2/
 
./configure \
--prefix=/usr/local/nginx \		#指定nginx的安装路径
--user=nginx \					#指定用户名
--group=nginx \					#指定组名
--with-http_stub_status_module	#启用 http_stub_status_module 模块以支持状态统计
 
 
make -j2 && make install
make -j2 ##表示cpu有2核,使用2个cpu同时一起编译,make是将源代码翻译成二进制
make install ##表示将二进制文件放到指定的目录中
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/		#让系统识别nginx的操作命令
##做软连接,创建二进制文件到PATH路径中
##一般是安装在/usr/local中,就放到/usr/local下的/sbin下
 
 

安装完成

停止nginx服务的方式

##cat /usr/local/nginx/logs/nginx.pid 先查看nginx的pid
##停止nginx服务的三种方式
kill -3 <nginx的pid号> 
kill -s QUIT <nginx的pid号>
killall -3 nginx
killall -s QUIT nginx
nginx -s quit 


kill -1 <nginx的pid>
kill -s HUP <nginx的pid>
killall -1 nginx
killall -s HUP nginx
nginx -s reload

7. 平滑升级

新版本升级:
tar xf nginx-1.25.3.tar.gz
cd nginx-1.25.3/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \  ##加上状态收集模块
--with-http_ssl_module    ##最新的版本需要加上ssl模块
 
make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old   ##将原来的程序进行备份
cp objs/nginx /usr/local/nginx/sbin/nginx          ##将新编译好的二进制文件放到安装目录下
make upgrade  #要保证当前 nginx 进程是通过 /usr/local/nginx/sbin/nginx 启动的,而不是通过查找环境变量中那个 nginx 命令启动的
#或者先 killall nginx ,再/usr/local/nginx/sbin/nginx

文章来源:https://blog.csdn.net/qq_48810547/article/details/134900379
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。