安装与更新Nginx

安装与更新Nginx

准备工作

# 不安装的话后面有一步会报错
yum install pcre-devel

安装Nginx

#下载最新版nginx,当然你也可以去网站看看最新版是哪个
wget http://nginx.org/download/nginx-1.21.3.tar.gz
tar zxvf nginx-1.21.3.tar.gz

#编译基本能运行的nginx
./configure --user=root --group=root --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
make
make install

编译参数解释:

#指定运行权限的用户
--user=www
#指定运行的权限用户组
--group=www
#指定安装路径
--prefix=/usr/local/nginx
#支持nginx状态查询
--with-http_stub_status_module
#开启ssl支持
--with-http_ssl_module
#开启GZIP功能
--with-http_gzip_static_module

因此要顺利的通过nginx编译安装必须安装的依赖关系有:

yum install gc gcc gcc-c++ pcre-devel zlib-devel openssl-devel

在 centos7 中为nginx的启动、重启、重载配置添加脚本

nginx直接启动的方法:

/usr/local/nginx/sbin/nginx

但是不是很方便,因此使用下面的脚本来控制nginx的启动关闭重载更加合理一些。

编辑文件:vim /usr/lib/systemd/system/nginx.service 添加下面的脚本,注意路径 !

[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

systemctl的一些使用方法:

systemctl is-enabled servicename.service #查询服务是否开机启动
systemctl enable xxx.service #开机运行服务
systemctl disable xxx.service #取消开机运行
systemctl start xxx.service #启动服务
systemctl stop xxx.service #停止服务
systemctl restart xxx.service #重启服务
systemctl reload xxx.service #重新加载服务配置文件
systemctl status xxx.service #查询服务运行状态
systemctl --failed #显示启动失败的服务

因此,添加上面脚本后,centos7 中操作nginx的方法有

systemctl is-enabled nginx.service #查询nginx是否开机启动
systemctl enable nginx.service #开机运行nginx
systemctl disable nginx.service #取消开机运行nginx
systemctl start nginx.service #启动nginx
systemctl stop nginx.service #停止nginx
systemctl restart nginx.service #重启nginx
systemctl reload nginx.service #重新加载nginx配置文件
systemctl status nginx.service #查询nginx运行状态
systemctl --failed #显示启动失败的服务

以上是正常安装的步骤

实际上我没有做更新,而是直接卸载重装了,在卸载前一定要把nginx.conf保存好,因为卸载的时候会直接删除。

由于我是通过yum安装的nginx,所以卸载的命令是:

yum remove nginx

卸载完后按上方的安装步骤进行安装即可,需要注意的是,新的配置文件需要放在/usr/local/nginx/conf/下。

如果启动nginx服务出现80端口无法绑定的情况,需要执行以下命令:

ps -A|grep nginx
kill -9 pid1
kill -9 pid2

补充一点

最优方案:使用最新版Nginx的docker容器

上一篇:服务器应用安装文档


下一篇:leetcode 745 Prefix and Suffix Search