nginx安装
一、安装
1.安装依赖(ubuntu)
apt-get install libpcre3 libpcre3-dev
apt-get install openssl libssl-dev
apt-get install zlib1g-dev
apt-get install build-essential2.安装依赖(centos)
yum -y install openssl openssl-devel
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install gcc-c++3.下载源码解压
wget http://nginx.org/download/nginx-1.20.2.tar.gz
tar -xvf nginx-1.20.2.tar.gzwget http://tengine.taobao.org/download/tengine-2.3.3.tar.gz
tar -xvf tengine-2.3.3.tar.gz4.安装模块
$ ./configure --prefix=/etc/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --add-module=/opt/ngx_cache_purge-2.3模块参数:
--prefix=/etc/nginx/ 安装路径(自定义即可)
--with-http_stub_status_module --with-http_ssl_module https支持模块
4.1. 编译
make4.2. 安装
make install修改nginx server头(进入源码文件修改nginx.h,然后make,obj文件夹会生成新的nginx启动脚本,复制到安装目录sbin下,重启即可)
vim /opt/nginx-1.20.2/src/core/nginx.h

5.相关命令
./nginx 启动
./nginx -s stop 关闭
./nginx -s reload 重启6.设置开机自启动
vim /etc/systemd/system/nginx.service
[Unit]
Description=nginx service
After=network.target
[Service]
Type=forking
ExecStart=/etc/nginx/sbin/nginx
ExecReload=/etc/nginx/sbin/nginx -s reload
ExecStop=/etc/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target7.赋予执行权限
chmod +x /etc/systemd/system/nginx.service
systemctl daemon-reload #加载配置
systemctl enable nginx #开机自启动二、版本升级
1、查看nginx老版本
/usr/local/nginx/sbin/nginx -V
2.下载新的nginx源码包
新源码包 按照安装nginx的方法进行安装,只需要到make,千万不要make install
wget http://nginx.org/download/nginx-1.23.3.tar.gz
tar -zxvf nginx-1.23.3.tar.gz
cd nginx-1.23.3/
./configure --prefix=/etc/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module3.编译
make4、平滑升级nginx
1: 备份旧版本的nginx可执行文件(期间nginx不会停止服务)
mv /etc/nginx/sbin/nginx /etc/nginx/sbin/nginx.old2.复制新的nginx二进制文件,进入新的nginx源码包
cp /opt/nginx-1.23.3/objs/nginx /etc/nginx/sbin/3: 测试新版本的nginx是否正常
/etc/nginx/sbin/nginx -t4:.给nginx发送平滑迁移信号(若不清楚pid路径,请查看nginx配置文件)
kill -USR2 cat /etc/nginx/logs/nginx.pid5:从容关闭旧的Nginx进程
kill -WINCH cat /etc/nginx/logs/nginx.pid.oldbin6.验证Nginx是否升级成功
/etc/nginx/sbin/nginx -V
7.如果在升级之后发现因版本问题不兼容应用程序,怎么回退?
在上面的结果中,我们也能看到老的master进程是一直存在,在没有手工关闭前,它是不会自已关闭的,这种设计是有好处的,好处就是为了升级新版本后,如果出现问题能及时快速的回滚到上一个稳定版本。也就是说,在检查出没问题前,请务必不执行以下指令。
kill -QUIT cat /etc/nginx/logs/nginx.pid.oldbin下面是回退的操作
重命名nginx二进制文件,把之前备份的修改回来
kill -USR1 cat /etc/nginx/logs/nginx.pid.oldbin
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 zy
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果