美文网首页
第二十二节、Nginx服务

第二十二节、Nginx服务

作者: 妄语莫言 | 来源:发表于2017-12-17 14:32 被阅读0次

    模块选项配置说明
    配置参考文章

    一、服务安装
    • 首先安装前置服务[root@localhost ~]# yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
      zlib:Nginx提供gzip模块,需要zlib库支持。
      openssl:Nginx提供SSL功能
      pcre:支持地址重写rewrite功能
    • 创建服务使用的用户和组并锁定无法登录
    [root@localhost ~]# groupadd nginx
    [root@localhost ~]# useradd -r -g nginx nginx
    [root@localhost ~]# usermod -s /sbin/nologin nginx
    

    -编译安装文件
    编译部分配置项说明
    --with-xxx 代表默认没有打开的功能
    --without-xxx 代表默认打开的功能
    --prefix=path 代表安装路径
    --sbin-path=path sbin路径
    --conf-path 配置文件
    --pid-path 代表进程号保存文件
    --error-log-path错误日志
    --lock-path 锁文件
    --user ps看到的启动进程用户
    --group ps看到的启动进程用户所在组
    --with-http_ssl_module 支持SSL模块
    --with-http_flv_module 为flv伪流媒体服务端提供支持

    [root@localhost nginx-1.12.2]# ls
    auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
     [root@localhost nginx-1.12.2]# ./configure  --prefix=/usr/local/nginx  --conf-path=/usr/local/nginx/nginx.conf  --error-log-path=/usr/local/nginx/log/error.log  --pid-path=/usr/local/nginx/nginx.pid  --lock-path=/usr/local/nginx/nginx.lock  --user=nginx  --group=nginx  --with-http_ssl_module  --with-http_flv_module
     [root@localhost nginx-1.12.2]# make
     [root@localhost nginx-1.12.2]# make install
    
    二、配置开机自启动及设置为系统服务

    源码安装的启动方式

    #检查安装参数
    [root@localhost nginx]# /usr/local/nginx/sbin/nginx -V
    nginx version: nginx/1.12.2
    built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) 
    built with OpenSSL 1.0.1e-fips 11 Feb 2013
    TLS SNI support enabled
    configure arguments: --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf --error-log-path=/usr/local/nginx/log/error.log --pid-path=/usr/local/nginx/nginx.pid --lock-path=/usr/local/nginx/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module
    #启动
    [root@localhost nginx]# /usr/local/nginx/sbin/nginx 
    [root@localhost nginx]# ps -ef|grep nginx
    root       3947      1  0 13:09 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
    nginx      3948   3947  0 13:09 ?        00:00:00 nginx: worker process      
    root       3950   1291  0 13:09 pts/0    00:00:00 grep nginx
    [root@localhost nginx]# netstat -tulnp|grep 80
    tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      3963/nginx   
    #停止
    [root@localhost nginx]# /usr/local/nginx/sbin/nginx  -s stop
    #使运行中的Nginx 服务重新加载nginx.conf 文件并生效
    [root@localhost nginx]# /usr/local/nginx/sbin/nginx  -s reload
    #优雅停止服务,关闭监听端口,停止接收新的连接,然后把当前正在处理的连接全部处理完,最后再退出进程。
    [root@localhost nginx]# /usr/local/nginx/sbin/nginx  -s quit
    
    修改配置文件
    [root@localhost nginx]# vim /usr/local/nginx/nginx.conf
      1 ######nginx.conf########
      2 user  nginx nginx;       #修改服务的用户和组
      3 worker_processes  1;  #启动工作进程数量,一般等于CPU的核心数
    
    设置开机启动脚本
    [root@localhost init.d]# vim nginx  
      1 #! /bin/bash
      2 # Description: Startup script for webserver on CentOS. cp it in /etc/init.d and
      3 # chkconfig --add nginx && chkconfig nginx on
      4 # then you can use server command control nginx
      5 #
      6 # chkconfig: 2345 08 99
      7 # description: Starts, stops nginx
      8 
      9 set -e
     10 PATH=$PATH:/usr/local/nginx/sbin/
     11 DESC="nginx daemon"
     12 NAME=nginx
     13 DAEMON=/usr/local/nginx/sbin/$NAME
     14 CONFIGFILE=/usr/local/nginx/nginx.conf
     15 PIDFILE=/usr/local/nginx/nginx.pid
     16 SCRIPTNAME=/etc/init.d/$NAME
     17 
     18 # Gracefully exit if the package has been removed.
     19 test -x $DAEMON || exit 0
     20 
     21 d_start() {
     22 $DAEMON -c $CONFIGFILE || echo -n " already running"
     23 }
     24 
     25 d_stop() {
     26 kill -QUIT `cat $PIDFILE` || echo -n " not running"
     27 }
     28 
     29 d_reload() {
     30 kill -HUP `cat $PIDFILE` || echo -n " can't reload"
    31 }
     32 
     33 case "$1" in
     34 start)
     35 echo -n "Starting $DESC: $NAME"
     36 d_start
     37 echo "."
     38 ;;
     39 stop)
     40 echo -n "Stopping $DESC: $NAME"
     41 d_stop
     42 echo "."
     43 ;;
     44 reload)
     45 echo -n "Reloading $DESC configuration..."
     46 d_reload
     47 echo "reloaded."
     48 ;;
     49 restart)
     50 echo -n "Restarting $DESC: $NAME"
     51 d_stop
     52 sleep 1
     53 d_start
     54 echo "."
     55 ;;
     56 *)
     57 echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
     58 exit 3
     59 ;;
     60 esac
     61 exit 0
    [root@localhost init.d]# chmod 700 /etc/init.d/nginx  
    
    添加开机自启动
    [root@localhost init.d]# chkconfig --add nginx 
    [root@localhost init.d]# chkconfig --level 2345 nginx on  
    [root@localhost init.d]# chkconfig |grep nginx
    nginx           0:关闭 1:关闭 2:启用    3:启用  4:启用  5:启用  6:关闭
    

    服务相关命令/etc/init.d/nginx start|stop|restart|reload
    启动配置参考文章

    日志切割脚本
    vi /usr/local/nginx/sbin/cut_nginx_log.sh
    
    #!/bin/bash 
    # This script run at 00:00 
    # The Nginx logs path 
     logs_path="/usr/local/nginx/logs/"
     logs_bak_path="/data/logs/nginx/"
    
     mkdir -p ${logs_bak_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
     cp ${logs_path}access.log ${logs_bak_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log
     rm -rf ${logs_path}*.log
     kill -USR1 `cat /var/run/nginx.pid`
    

    相关文章

      网友评论

          本文标题:第二十二节、Nginx服务

          本文链接:https://www.haomeiwen.com/subject/ygeywxtx.html