详解基于CentOS 7配置Nginx自启动
时间:2019-04-13
本文章向大家介绍详解基于CentOS 7配置Nginx自启动,主要包括详解基于CentOS 7配置Nginx自启动使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Nginx是广为流行的轻量级Web服务器软件。它开源,短小精悍,简单易用,深受广大互联网企业以及IT运维人员所喜爱。很多时候,我们在生产环境基于编译方式安装Nginx后,Nginx需要手工配置自启动服务,以确保服务器异常宕机后自动重启该服务。以下描述的是基于CentOS 7下来配置自启动服务,供大家参考。
一、yum 安装方式Nginx自启动
当前环境
[root@node142 ~]# more /etc/redhat-release CentOS Linux release 7.2.1511 (Core)
查看是否保护nginx rpm包
[root@node142 ~]# rpm -qa|grep nginx nginx-mod-http-geoip-1.12.2-2.el7.x86_64 nginx-1.12.2-2.el7.x86_64 nginx-filesystem-1.12.2-2.el7.noarch nginx-mod-http-xslt-filter-1.12.2-2.el7.x86_64 nginx-mod-stream-1.12.2-2.el7.x86_64 nginx-mod-http-perl-1.12.2-2.el7.x86_64 nginx-mod-http-image-filter-1.12.2-2.el7.x86_64 nginx-all-modules-1.12.2-2.el7.noarch nginx-mod-mail-1.12.2-2.el7.x86_64
查看是否存在相应的服务,如下,有nginx.service
[root@node142 ~]# systemctl list-unit-files |grep nginx nginx.service disabled
将其配置为自动
[root@node142 ~]# systemctl enable nginx.service
查看nginx.service文件
[root@node142 ~]# more /lib/systemd/system/nginx.service [Unit] Description=The nginx HTTP and reverse proxy server After=network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/run/nginx.pid # Nginx will fail to start if /run/nginx.pid already exists but has the wrong # SELinux context. This might happen when running `nginx -t` from the cmdline. # https://bugzilla.redhat.com/show_bug.cgi?id=1268621 ExecStartPre=/usr/bin/rm -f /run/nginx.pid ExecStartPre=/usr/sbin/nginx -t ExecStart=/usr/sbin/nginx ExecReload=/bin/kill -s HUP $MAINPID KillSignal=SIGQUIT TimeoutStopSec=5 KillMode=process PrivateTmp=true [Install] WantedBy=multi-user.target
上述配置文件中的内容和官网提供的一模一样
https://www.nginx.com/resources/wiki/start/topics/examples/systemd/
二、编译安装后的自启动配置
由于是编译安装,因此,对于这个自启动的脚本我们需要自行配制。
具体则是参考上面的链接或者上面给出的nginx.service文件内容。
然后将其保存为 /lib/systemd/system/nginx.service。
看下面的例子
# more /etc/redhat-release CentOS Linux release 7.4.1708 (Core) # ps -ef|grep nginx root 10092 10014 0 16:23 pts/0 00:00:00 grep --color=auto nginx root 20791 1 0 Mar20 ? 00:00:00 nginx: master process ./sbin/nginx -c /u01/app/nginx/nginx.conf nobody 20792 20791 0 Mar20 ? 00:00:44 nginx: worker process nobody 20793 20791 0 Mar20 ? 00:00:42 nginx: worker process nobody 20794 20791 0 Mar20 ? 00:00:50 nginx: worker process nobody 20795 20791 0 Mar20 ? 00:00:44 nginx: worker process nobody 20796 20791 0 Mar20 ? 00:00:43 nginx: worker process nobody 20797 20791 0 Mar20 ? 00:00:43 nginx: worker process nobody 20798 20791 0 Mar20 ? 00:00:37 nginx: worker process nobody 20799 20791 0 Mar20 ? 00:00:48 nginx: worker process nobody 20800 20791 0 Mar20 ? 00:00:04 nginx: cache manager process #
无相应的rpm包,如下查询,此处为编译安装
# rpm -qa|grep nginx
也没有添加相应的自启动服务
# systemctl list-unit-files |grep nginx
nginx版本
# /u01/app/nginx/sbin/nginx -v nginx version: nginx/1.8.1
获取nginx编译模块,然后查看诸如pid,二进制位置并记录以便修改启动文件
# /u01/app/nginx/sbin/nginx -V nginx version: nginx/1.8.1 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix=/u01/app/nginx --sbin-path=/u01/app/nginx/sbin/nginx --conf-path=/u01/app/nginx/nginx.conf --error-log-path=/u01/app/nginx/log/error.log --http-log-path=/u01/app/nginx/log/access.log --pid-path=/u01/app/nginx/nginx.pid --lock-path=/u01/app/nginx/nginx.lock --http-client-body-temp-path=/u01/app/nginx/client_temp --http-proxy-temp-path=/u01/app/nginx/proxy_temp --http-fastcgi-temp-path=/u01/app/nginx/fastcgi_temp --http-uwsgi-temp-path=/u01/app/nginx/uwsgi_temp --http-scgi-temp-path=/u01/app/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_spdy_module --with-ipv6
下面我们生成一个新的nginx.service文件
# vim /lib/systemd/system/nginx.service [Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/u01/app/nginx/nginx.pid ExecStartPre=/u01/app/nginx/sbin/nginx -t ExecStart=/u01/app/nginx/sbin/nginx ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
下面我们先手工停止nginx
# /u01/app/nginx/sbin/nginx -s stop
配置自启动
# systemctl enable nginx.service
使用systemctl工具启动nginx服务
# systemctl start nginx.service # systemctl status nginx.service ● nginx.service - The NGINX HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2018-03-29 16:37:47 CST; 6s ago Process: 10588 ExecStart=/u01/app/nginx/sbin/nginx (code=exited, status=0/SUCCESS) Process: 10586 ExecStartPre=/u01/app/nginx/sbin/nginx -t (code=exited, status=0/SUCCESS) Main PID: 10590 (nginx) CGroup: /system.slice/nginx.service ├─10590 nginx: master process /u01/app/nginx/sbin/nginx ├─10591 nginx: worker process # Author : Leshami ├─10592 nginx: worker process # Blog : https://blog.csdn.net/leshami ├─10593 nginx: worker process ├─10594 nginx: worker process ├─10595 nginx: worker process ├─10596 nginx: worker process ├─10597 nginx: worker process ├─10598 nginx: worker process ├─10599 nginx: cache manager process └─10600 nginx: cache loader process Mar 29 16:37:47 ydq-std systemd[1]: Starting The NGINX HTTP and reverse proxy server... Mar 29 16:37:47 ydq-std nginx[10586]: nginx: the configuration file /u01/app/nginx/nginx.conf syntax is ok Mar 29 16:37:47 ydq-std nginx[10586]: nginx: configuration file /u01/app/nginx/nginx.conf test is successful Mar 29 16:37:47 ydq-std systemd[1]: Started The NGINX HTTP and reverse proxy server.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- 从 Encoder 到 Decoder 实现 Seq2Seq 模型
- python2.7进行爬虫百度POI代码(划分小网格算法)
- 如何通过TTL调试光猫
- 基于树莓派和Tensowflow的物体识别-brain
- SNA中:中心度及中心势诠释(不完整代码)
- 教程 | 基于计算机视觉使用Python和OpenCV计算道路交通
- 干货 | MVP模式在携程酒店的应用和扩展
- memlock过低导致的数据库性能问题(r6笔记第10天)
- OpenCV和SVM分类器在自动驾驶中的车辆检测
- 自动驾驶的模型预测控制
- 【专业技术】使用html5的十大原因
- 第五课:推理结果的可视化
- 第四课:模型的使用
- 【Java概念学习】--数组的初始化
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 安防/教育/互联网直播视频组件EasyRTSPServer读取本地文件报错找不到EasyStreamClient.dll解决方法
- C语言编程入门之--第六章C语言控制语句
- RTSP网络摄像头网页无插件直播视频平台EasyNVR自定义标题和CopyRight步骤
- 设计模式~解释器
- RTSP/GB28181/HIKSDK/Ehome协议视频上云服务平台EasyCVR人脸识别开发ArcSoftFace环境搭建
- RTSP/GB28181/HIKSDK/EHome流媒体协议视频上云网关EasyCVR流地址密码不正确如何修正?
- tmux终端意外出现控制字符
- clickhouse编译安装以及搭建mysql实时复制
- Linux回收站机制实现过程及用法详解
- Linux如何基于AIDE检测文件系统完整性
- MySQL压测时Linux中断异常飚高,原来是因为...
- Ubuntu20.04防火墙设置简易教程(小白)
- linux上搭建私有Git服务器的详细教程
- Centos7 安装 Mysql8教程
- linux下快速列出局域网中所有主机名(计算机名)的脚本