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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏公有云大数据平台弹性 MapReduce

EMR常见FAQ (持续更新中)

1. 去到不健康节点的机器,用du命令去查看/data目录数据大小的分布情况,找出占比最大的目录

8182
来自专栏程序员同行者

mongodb主从配置及备份

2242
来自专栏禁心尽力

持久层框架之MyBatis

1、mybatis框架介绍:   MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software founda...

2635
来自专栏JavaEdge

Spring Security 实战 - Spring Security OAuth2项目准备

1572
来自专栏安恒信息

安全漏洞公告

1 Apache Tomcat XML外部实体信息泄露漏洞 Apache Tomcat XML外部实体信息泄露漏洞发布时间:2014-02-26漏洞编号:BUG...

3858
来自专栏埋名

CentOS7安装维护Gitlab

下面是官网复制过来的官方安装方法,最简单的安装,在我大天朝,只能望天兴叹,你可翻墙安装或者略过这里,看下面的。

5083
来自专栏分布式系统和大数据处理

linux常用命令(防火墙)

在部署和配置集群的时候,集群中的多台服务器需要通信,对于一些复杂的应用,例如consul、hadoop等,往往是客户端通信占用一个端口、Web UI占用一个端口...

8502
来自专栏Petrichor的专栏

ubuntu: scp指令 (远程拷贝)

用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。当你服务器硬盘变为只读 read...

2172
来自专栏Java学习123

windows下搭建Ruby(基于eclipse的环境)开发环境

3004
来自专栏飞雪无情的博客

解决Android SDK Manager不能更新的问题

今天打算更新到Android4.3,看看里面的新的API,DOC什么的,但是打开Android SDK Manager后发现不能更新,fetching更新配置文...

1572

扫码关注云+社区

领取腾讯云代金券