文章目录
一、Nginx概述
一款高性能、轻量级Web服务软件稳定性高,系统资源消耗低,对HTTP并发连接的处理能力高,单台物理服务器可支持30000 ~ 50000个并发请求,占用内存少,并发能力强
二、编译安装Nginx 服务
1、关闭防火墙,将安装 ngnix 所需的软件包上传到 /opt 目录下
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
2、安装依赖包
(nginx 的配置及运行需要 pcre zlib 等软件包的支持,因此需要安装这些安装的开发包,以便提供相应的库和头文件)
yum -y install gcc gcc-c++ pcre-devel zlib-devel make
3、创建运行用户、组(Nginx 服务程序默认以 noboday 身份运行,建议为其创建专门的用户账号,以便更准确的控制其访问权限)
useradd -M -s /sbin/nologin/ nginx #-M 代表不创建家目录
4、编译安装 Nginx
tar zxvf nginx-1.12.2.tar.gz -C /opt/
cd /opt/nginx-1.12.2/
./configure
–prefix=/usr/local/nginx
–user=nginx
–group=nginx
–with-http_stub_status_module
#每行代表的意思
./configure
–prefix=/usr/local/nginx \ #指定nginx的安装路径
–user=nginx \ #指定用户名
–group=nginx \ #指定组名
–with-http_stub_status_module #启用 http_stub_ status_ module 模块以支持状态统计
make && make install
ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ #创建软链接便于系统管理,让系统识别nginx的操作命令
5、检查、启用、重启、停止 nginx服务
nginx -t #检查配置文件是否配置正确
cat /usr/local/nginx/logs/nginx.pid #首先查看nginx的PID号
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 <PID号>
----日志分隔,重新打开日志文件-------
Kill -USR1 <PID号>
-----平滑升级------
kill -USR2 <PID号>
6、添加 Nginx 系统服务
方法一:
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
方法二:
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
#每行意义
[Unit]
Description=nginx #描述
After=network.target #描述服务类别
[Service]
Type=forking #后台运行形势
PIDFile =/usr/local/nginx/logs/nginx.pid #PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx #启动服务
ExecrReload=/bin/kill -s HUP $MAINPID #根据PID重载配置
ExecrStop=/bin/kill -s QUIT $MAINPID #根据PID终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target
chmod 754 /lib/systemd/system/nginx.service #设置754权限是一种安全优化
systemctl start nginx.service
systemctl enable nginx.service
三、 Nginx 服务的主配置文件 nginx.conf
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
vim /usr/local/nginx/conf/nginx.conf
1、全局配置
#user nobody; #运行用户,若编译时未指定则默认为 nobody
worker_ processes 1; #工作运行数量,可配置成服务器内核数*2,如果网站访问量不大,一般设为1就够用了
#error_log logs/error.log; #错误日志文件的位置
#pid logs/nginx.pid; #PID文件的位置
2、I/O事件配置
events {
use epoll; #使用 epoll 模型,2.6及以上版本的系统内核,建议使用 epoll 模型以提高性能
worker_connections 1024; #每个进程处理 4096 个连接
}
#如提高每个进程的连接数还需执行“ulimit -n 65535”命令临时修改本地每个进程可以同时打开的最大文件数。
#在Linux 平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。
#可使用ulimit -a 命令查看系统允许当前用户进程打开的文件数限制。
3、HTTP 配置
http {
##文件扩展名与文件类型映射表
include mime.types;
##默认文件类型
default_type application/octet-stream;
##日志格式设定
#log_format main '$remote_addr - r e m o t e u s e r [