一、Nginx概述
1、概述
Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。
对HTTP并发连接的处理能力高,单台物理服务器可支持30000~50000个并发请求。(实际操作,很多公司为了服务器的稳定,都会设置在20000个左右)
2、Nginx的应用场景
- 用作Web网站服务,处理http静态页面请求
- 用作虚拟主机,实现一个服务器用于做多个网站站点
- 用作反向代理、负载均衡,可以作为网关代理服务器接收客户端的请求转发给后端节点服务器集群
- 用作web缓存服务器
3、 Nginx 有哪些进程
master进程:管理worker进程,加载配置文件
worker进程:处理请求连接
4、Nginx 与 Apache 的区别
- 最核心的区别在于 Nginx 采用异步非阻塞机制,多个连接可以对应一个进程;Apache 采用的是同步阻塞+多进程/线程模型,一个连接对应一个进程
- Nginx 抗并发能力更高
- Nginx 更轻量,内存、CPU资源消耗更少
- Nginx 配置简洁,使用场景多,稳定性高
二、编译安装Nginx
1、初始化,并下载Nginx软件包
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/selinux/config
[root@localhost opt]# cd /opt/
[root@localhost opt]# ls
[root@localhost opt]# ls
nginx-1.26.1.tar.gz
2、安装相关的依赖包
#nginx的配置及运行需要pcre、zlib、openssl等软件包的支持
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
3、创建运行用户、组,并./configur配置选项
[root@localhost nginx-1.26.1]# useradd -M -s /sbin/nologin nginx
[root@localhost nginx-1.26.1]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
常用选项 | 功能作用 |
- -prefix=/usr/local/nginx | 指定nginx的安装路径 |
- -user=nginx | 指定用户名 |
- -group=nginx | 指定组名 |
- -with-http_stub_status_module | 启用http stub_status_module模块以支持状态统计 |
4、编译安装
[root@localhost nginx-1.26.1]# make -j 2 #编译
[root@localhost nginx-1.26.1]# make install #安装
[root@localhost nginx-1.26.1]# cd /usr/local/
[root@localhost local]# ls
bin etc games httpd include lib lib64 libexec nginx sbin share src
[root@localhost local]# cd nginx/
[root@localhost nginx]# ls
conf html logs sbin
[root@localhost nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
#给nginx服务的配置路径,设置软链接加入到系统PATH环境变量中,便于系统能够真接识别
[root@localhost nginx]# nginx -V
#查看nginx服务的版本信息
nginx version: nginx/1.26.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
三、Nginx的相关命令
启动nginx
#检查nginx服务配置是否正确
nginx -t
#启动nginx服务
/usr/local/sbin/nginx
#快捷运行
nginx
[root@localhost nginx]# /usr/local/nginx/sbin/nginx
[root@localhost nginx]# netstat -lntp | grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6968/nginx: master
[root@localhost nginx]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
停止nginx服务
cat /usr/local/nginx/logs/nginx.pid #先查看nginx的PID号
kill -3 <PID号>
kill -s QUIT <PID号>
killall -3 nginx
killall -s QUIT nginx
查看nginx进程号
cat /usr/local/nginx/logs/nginx.pid #查看nginx主进程的PID
pgrep nginx -l #查看nginx的主进程号和工作进程号
lsof -i :80 #查看nginx的主进程号和工作进程号
ss -ntap | grep nginx #查看nginx的主进程号和工作进程号
netstat -ntap | grep nginx #查看nginx主进程的PID
重载nginx服务
kill -1 <PID号>
kill -s HUP <PID号>
killall -1 nginx
killall -s HUP nginx
#日志分割,重新打开日志文件
kill -USR1 <PID号>
#平滑升级
kill -USR2 <PID号>
日志分割,重新打开日志文件
四、平滑升级Nginx操作
此时版本为1.24.0 要将其升级为1.26.1
下载最新安装包并解压编译
用make进行编译
将原配置文件nginx移动到nginx_old中
用make upgrade命令进行更新
五、nginx添加到系统服务
方法一:
[root@localhost nginx-1.26.1]# cd /usr/lib/systemd/system
[root@localhost system]# vim nginx.service
方法二:
yum 源安装
方法三:
vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: 2345 20 90
#description:This is Nginx Service Control Script
CMD="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$COM
;;
stop)
kill -s QUIT $(cat $PID)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PID)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac