准备工作
# 不安装的话后面有一步会报错 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容器