• 安装及使用nginx



    一、编译安装

    前期准备

    准备源码包,去官网找
    https://nginx.org/en/download.html
    
    yum -y install gcc pcre-devel openssl-devel zlib-devel openssl  openssl-devel#安装依赖环境
    
    useradd -M -s /sbin/nologin nginx#新建nginx用户便于管理
    
    ./configure --prefix=/apps/nginx \
    --user=nginx \
    --group=nginx \
    --with-http_ssl_module \
    --with-http_v2_module \
    --with-http_realip_module \
    --with-http_stub_status_module \
    --with-http_gzip_static_module \
    --with-pcre \
    --with-stream \
    --with-stream_ssl_module \
    --with-stream_realip_module
    添加需要的模块
    

    在这里插入图片描述
    在这里插入图片描述
    解释四个文件的作用

    1. conf:保存nginx所有的配置文件,其中nginx.conf是nginx服务器的最核心最主要的配置文件,其他的.conf则是用来配置nginx相关的功能的,例如fastcgi功能使用的是fastcgi.conf和fastcgi_params两个文件,配置文件一般都有个样板配置文件,是文件名.default结尾,使用的使用将其复制为并将default去掉即可。
    2. html目录中保存了nginx服务器的web文件,但是可以更改为其他目录保存web文件,另外还有一个50x的web文件是默认的错误页面提示页面。
    3. logs:用来保存nginx服务器的访问日志错误日志等日志,logs目录可以放在其他路径,比如/var/logs/nginx里面。
    4. sbin:保存nginx二进制启动脚本,可以接受不同的参数以实现不同的功能。

    启动和停止nginx

    1.系统未接管启动
    绝对路径启动:/apps/nginx/sbin/nginx
    停止:killall nginx
    在这里插入图片描述
    创建软连接
    ln -s /apps/nginx/sbin/nginx /usr/sbin/
    在这里插入图片描述

    2.创建nginx自启动文件

    [Unit]
    Description=nginx - high performance web server
    Documentation=http://nginx.org/en/docs/
    After=network-online.target remote-fs.target nss-lookup.target
    Wants=network-online.target
    [Service]
    Type=forking
    PIDFile=/apps/nginx/logs/nginx.pid
    #注意文件位置,如果不对 启动不了
    ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
    #注意启动文件位置
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s TERM $MAINPID
    LimitNOFILE=100000
    
    [Install]
    WantedBy=multi-user.target
    
    

    在这里插入图片描述

    yum安装

    yum安装较为简单,但是需要网络。注意nginx在额外源中,需要先安装额外源。

    yum install -y epel-release
    yum install nginx -y
    

    二、平滑升级及命令、信号使用

    信号

    命令含义
    -v显示版本信息然后退出
    -V显示版本和配置选项,然后退出
    -t测试配置然后退出
    -T测试配置,输出到文件并退出
    -q在配置测试期间抑制非错误消息
    -s向主进程发送信号:停止(stop),退出(quit),重新打开(reopen),重新加载(reload)
    -p 路径设置路径
    -e 文件名设置错误日志文件
    -c 文件名设置配置文件
    -g指定配置

    在这里插入图片描述

    命令含义
    stop立即关闭nginx
    quit优雅退出 不影响业务的状态下退出
    reload重新加载
    SIGUSR1重新分割日志
    SIGUSR2运行中升级

    分割日志
    重新分割日志。未发信号前,还是存在原先的日志文件里面。

    在这里插入图片描述
    向主进程发布信号后,即可重新载入日志文件。在这里插入图片描述
    指定配置
    nginx -g指定配置文件,不以文件中的配置为准。

    nginx -g 'user zhangsan;'   已张三身份运行,默认是以nginx身份
    nginx -g 'daemon off;'      前台运行命令
    

    不停机升级

    在这里插入图片描述

    1. 将旧Nginx文件换成新Nginx文件(注意备份)
    2. 向master进程发送USR2信号
    3. master进程修改pid文件名,加后缀.oldbin
    4. master进程用新Nginx文件启动新master进程,系统中将有新旧两个Nginx主进程共同提供Web服务
    5. 向旧的Nginx服务进程发送WINCH信号,使旧的Nginx worker进程平滑停止,并删除Nginx.pid.oldbin文件
    6. 向旧master进程发送QUIT信号,关闭老master
    7. 如果发现升级有问题,可以回滚向老master发送HUP,向新master发送QUIT

    准备安装包
    在这里插入图片描述
    重新编译安装
    不停机更新,需要安装参数一致,这时可以使用nginx -V 查看
    在这里插入图片描述
    添加完模块后,可以内核编译,编译完成后注意不要执行make install。

    mv /apps/nginx/sbin/nginx   /apps/nginx/sbin/nginx.bak
    #将低版本的nginx主程序改名
    cp objs/nginx /apps/nginx/sbin/
    #将新版本 拷入进去
    
    

    在这里插入图片描述
    这张图片里就有两个版本的nginx;有两个master。
    在这里插入图片描述
    滑动升级完成,可以将1.18版本优雅的退出即可。

  • 相关阅读:
    真正解决办法:WINDOWS7/WIN7提示错误:无法启动此程序,因为计算机中丢失D3DCOMPILER_47.dll。尝试重新安装该程序以解决此问题
    阿里云的99元服务器和腾讯云的88元云服务器选择哪个?怎么选?
    华为机试真题 C++ 实现【最大化控制资源成本】【2022.11 Q4 新题】
    解析vue.config.js文件
    阿里云刘洋:基于eBPF的Kubernetes可观测最佳实践
    享搭低代码平台:加速企业应用开发,轻松搭建表单和报表
    牛客网刷题(三)
    【c++刷题Day2】专题2线性DP
    Redis
    梦想Android版CAD控件2022.06.22更新,APP查看CAD图纸
  • 原文地址:https://blog.csdn.net/xiaogengtongxu/article/details/139443371