Nginx封装为CentOS7的服务

时间:2022-06-10
本文章向大家介绍Nginx封装为CentOS7的服务,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

已经安装好Nginx

编译安装好nginx后,正常启动方式 例如我的安装目录是/usr/local/nginx 修改配置后重新加载生效 /usr/local/nginx/sbin/nginx -s reload 重新打开日志文件 /usr/local/nginx/sbin/nginx -s reopen 测试nginx配置文件是否正确 /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf 启动nginx /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 快速停止nginx /usr/local/nginx/sbin/nginx -s stop 完整有序的停止nginx /usr/local/nginx/sbin/nginx -s quit 注:stop和quit的区别在于 quit是一个优雅的关闭方式,Nginx在退出前完成已经接受的连接请求 Stop 是快速关闭,不管有没有正在处理的请求。

其他的停止nginx 方式: ps -ef | grep nginx

kill -QUIT 主进程号 :从容停止Nginx kill -TERM 主进程号 :快速停止Nginx pkill -9 nginx :强制停止Nginx

平滑重启nginx: kill -HUP 主进程号

将nginx服务添加至systemctl

  • 修改nginx配置文件,开启pid pid /var/run/nginx.pid;
  • 通过上述方式关闭nginx服务
  • 配置服务,在/usr/lib/systemd/system/新建nginx.service文件,vim编辑如下
[Unit] 
Description=nginx - high performance web server 
After=network.target remote-fs.target nss-lookup.target

[Service] 
Type=forking 
PIDFile=/var/run/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=/usr/local/nginx/sbin/nginx -s reload 
ExecStop=/usr/local/nginx/sbin/nginx -s stop 
ExecQuit=/usr/local/nginx/sbin/nginx -s quit 
PrivateTmp=true

[Install] 
WantedBy=multi-user.target
  • [Unit]部分主要是对这个服务的说明,内容包括Description和After,Description用于描述服务,After用于描述服务类别
  • [Service]部分是服务的关键,是服务的一些具体运行参数的设置,这里Type=forking是后台运行的形式,PIDFile为存放PID的文件路径,ExecStart为服务的具体运行命令,ExecReload为重启命令,ExecStop为停止命令,PrivateTmp=True表示给服务分配独立的临时空间,注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!
  • [Install]部分是服务安装的相关设置,可设置为多用户的
  • 服务脚本按照上面编写完成后,以754的权限保存在/usr/lib/systemd/system目录下 然后执行(修改或新增文件需要执行以下语句才能生效) systemctl daemon-reload 这时就可以利用systemctl进行配置了 systemctl start/stop/reload/quit nginx.service 若发生报错,可通过systemctl status nginx.service查看失败原因 设置开机自启动 systemctl enable nginx.service