Linux系统架构-----Nginx的服务基础

目录

 

一.Nginx的概述

二.Nginx的安装

三.服务控制的优化

四.nginx的配置文件

五.访问状态统计


一.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 查看本文章

发布了94 篇原创文章 · 获赞 108 · 访问量 6402

猜你喜欢

转载自blog.csdn.net/qq_42761527/article/details/103616546
今日推荐