目录
1、关闭防火墙和核心防护,将安装nginx所需软件包传到机器上
nginx 和 apache 的区别
nginx 采用的是异步非阻塞机制,一个进程可以同时处理多个连接。
apache 采用的是同步阻塞+多进程/多线程模型,一个进程只能同时处理一个连接。
nginx的优点
nginx 抗并发能力更高(处理 2-3 万并发连接数,最高能支持 5 万并发)
nginx 更轻量,CPU、内存资源消耗更少
nginx 配置简洁,使用场景多,性能稳定
nginx 的应用场景
用作web网站服务,处理静态网页请求
用作虚拟主机,实现在一个服务器上部署多个网站站点
用作反向代理、负载均衡,可作为网关代理服务器接收客户端的请求再转发给后端上游服务器处理
用作web缓存服务器,缓存经常被访问的静态网页资源
编译安装Nginx服务
1、关闭防火墙和核心防护,将安装nginx所需软件包传到机器上
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
软件包
nginx-1.24.0.tar.gz
2、安装依赖包
安装依赖环境
nginx的配置及运行需要pcre、zlib、openssl等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件。
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
3、创建运行用户、组
Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限
useradd -M -s /sbin/nologin nginx
4、编译安装Nginx
配置软件模块
tar zxvf nginx-1.24.0.tar.gz -C /opt/
cd nginx-1.24.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
--prefix=/usr/local/nginx ---指定nginx的安装路径
--user=nginx ---指定用户名
--group=nginx ---指定组名
--with-http_stub_status_module ---启用 http_stub_status_module 模块以支持状态统计
编译安装
make -j 2 && make install
让系统识别nginx的操作命令
5、检查、启动、重启、停止 nginx服务
检查配置文件是否配置正确
nginx -t
启动
/usr/local/nginx/sbin/nginx
查看nginx的PID号
cat /usr/local/nginx/logs/nginx.pid
查看nginx的端口号(nginx的端口号和httpd的默认端口号相同,所以安装nginx时不能开启httpd服务)
netstat -ntlp | grep nginx
后台启动nginx
nginx
前台启动ngnix
nginx -g "daemon off;" (Ctrl + c 退出)
当nginx已经启动时,再用启动命令
停止
kill -3 <PID号>
kill -s QUIT <PID号>
killall -3 nginx
killall -s QUIT nginx
重载
kill -1 <PID号>
kill -s HUP <PID号>
killall -1 nginx
killall -s HUP nginx
kill -USR1 <PID号> 用于日志分割,重新打开日志文件(生成新的log文件)
平滑升级
kill -USR2 <PID号>
官网下载最新版,上传。
tar xf nginx-1.27.1.tar.gz
cd nginx-1.27.1
配置软件模块
cd nginx-1.xx.xx
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \
--with-http_ssl_module(也可用Ctrl+r搜索历史命令)
编译
make -j 2
替换objs中的二进制文件nginx
备份以前的nginx文件
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old
替换新的nginx
cp objs/nginx /usr/local/nginx/sbin/nginx
升级(要保证当前 nginx 进程是通过 /usr/local/nginx/sbin/nginx 启动的,而不是通过查找环境变量中那个 nginx 命令启动的。可以先关闭nginx,再通过/usr/local/nginx/sbin/nginx启动。)
make upgrade
查询版本号
nginx -v
nginx的进程
master进程:管理worker进程,加载配置文件
worker进程:处理连接请求
6、添加 Nginx 系统服务
方法一
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
chmod 754 /lib/systemd/system/nginx.service(加权)
systemctl start nginx.service(开启服务)
systemctl enable nginx.service(设置开机自启)
方法二
vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20
#description:Nginx Service Control Script
COM="/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
exit 0
chmod +x /etc/init.d/nginx(加权)
chkconfig --add nginx(添加为系统服务)
systemctl stop nginx(开启服务)
systemctl start nginx(设置开机自启)