目录
一.Nginx的概述
- Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx稳定性高,而且系统资源消耗少
- Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等
- Nginx相对于Apache主要处理静态请求,而apache主要处理动态请求
二.Nginx的安装
- Nginx安装文件可以从官方网站 http://www.nginx.org/ 下载,截止11-19已经更新到nginx-1.17.6版本
- 安装运行Nginx的运行环境
yum install gcc gcc-c++ pcre* zlib-devel make -y
- 创建运行的用户和组
useradd -M -s /sbin/nologin nginx
- 解压,配置,编译且安装
#解压
tar zxvf nginx-1.12.2.tar.gz
#配置,安装且编译
cd nginx-1.12.2/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
#nigix运行的用户和组都为nginx
#启用http_stub_status_module模块以支持状态统计,便于查看服务器的连接信息
make && make install
- 使用下列的命令控制Nginx
nginx -t //检查
nginx //启动
killall -1 nginx //重启
killall -3 nginx //停止
- 可以下载elinks查看Nginx界面
yum install elinks -y
elinks http://localhost
三.服务控制的优化
- nginx的服务控制命令
nginx -t //检查
nginx //启动
killall -1 nginx //重启
killall -3 nginx //停止
- 主程序Nginx支持标准的进程信号,通过kill或者killall命令发送HUP信号表示重载配置,发送QUIT信号表示退出进程,发送KILL信号表示杀死进程
kill -s HUP nginx //-s HUP等同于 -1 ,表示重载
kill -s QUIT nginx //-s QUIT 等同于 -3 ,表示停止
- 编辑nginx服务控制脚本
vim /etc/init.d/nginx
#!/bin/bash
# chkconfig: -99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx" //nginx主程序
PIDF="/usr/local/nginx/logs/nginx.pid" //nginx的PID号
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
- 为服务控制脚本添加权限,添加到系统服务中去
chmod +x /etc/init.d/nginx
chkconfig --add list
chkconfig --level 35 nginx on //设置开启自启
- 使用service控制nginx服务
service start nginx //开启
service stop nginx //关闭
service restart nginx //重启
service reload nginx //重载
-
systemctl工具来控制Nginx服务脚本
vim /lib/systemd/system/nginx.service
[Unit]
Dsecription=nginx //描述
After=network.target //描述服务类别
[Service]
Type=forking //后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid //PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx //启动服务
ExecReload=/usr/bin/kill -s HUP $MAINPID //根据PID重载
ExecStop=/usr/bin/kill -s QUIT $MAINPID //根据PID关闭
PrivateTmp=true
[Install]
WantedBy=multi-user.target
chmod 755 /lib/systemd/system/nginx.service //添加执行权限
四.nginx的配置文件
- Nginx的服务器中的主配置文件 /usr/local/nginx/conf/nginx.conf 中包括全局配置、I/O事件配置和HTTP配置
- 全局配置,由各种配置语句组成,不使用特定的界定标记。全局配置部分包括Nginx服务的运行用户、工作进程数、错误日志、PID存放位置等基本设置
#user nobody; //运行的用户
worker_processes 1; //工作的进程数 ,取决于服务器的cpu
#error_log logs/error.log; //错误日志文件的位置
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid; //PID文件的位置
- I/O事件配置,使用“event{ }”界定标记,用来指定Nginx进程的I/O响应模型、每个进程的连接数等设置。对于2.6及以上的版本的内核,建议使用epoll模型以提高性能;每个进程的连接数根据实际需要来定,一般在10000以下(默认为1024)
events {
use epoll; //使用epoll模型
worker_connections 1024; //每个进程处理1024个连接
}
//Nginx能提供服务的连接数为(工作进程数X连接数,即1*1024=1024)
- HTTP配置,使用“http{ }”界定标记,包括访问日志、http端口、网页目录、默认字符集、连接保持,以及后面要讲到的虚拟web主机、PHP解析等一系列设置,其中大部分配置语句包含在server{}中。
http {
include mime.types;
default_type application/octet-stream;
sendfile on; //支持文件下载
keepalive_timeout 65; //保持连接超时时间
server {
listen 80; //监听地址以及端口
# server_name www.yun.com; //域名
charset utf-8; //网页默认的字符集
location / {
root html; //网站根目录的位置
index index.html index.htm; //默认首页
}
location /status {
stub_status on;
access_log off;
}
error_page 500 502 503 504 /50x.html; //内部错误的反馈页面
location = /50x.html { //错误页面配置
root html;
}
}
五.访问状态统计
- Nginx内置了HTTP_STUB_STATUS状态统计模块,用来反馈当前的web访问情况,配置编译参数时--with_http_stub_statius_module来启用此模块支持,使用nginx -V来查看Nginx中是否包含该模块
- 要使用Nginx的状态统计功能,除了启用内建模块以外,还需要修改nginx.conf 配置文件,到指定访问位置并添加stub_status配置代码
- 重启服务
[root@localhost conf]# service nginx stop
[root@localhost conf]# service nginx start
扫描二维码关注公众号,回复:
8505278 查看本文章