编译安装nginx时配置开机自启
发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,详细编译安装nginx请参考【Nginx目录结构与配置文件详解】以及【Nginx安装部署】,在这里就进行简单安装安装Nginx环境介绍操作系统:[root@localhost ~]# cat /etc
千家信息网最后更新 2024年12月12日编译安装nginx时配置开机自启
详细编译安装nginx请参考【Nginx目录结构与配置文件详解】以及【Nginx安装部署】,在这里就进行简单安装
安装Nginx
环境介绍
操作系统:
[root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [root@localhost ~]# uname -aLinux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
nginx软件版本: nginx-1.17.6.tar.gz
安装依赖
注意:编译安装一定要安装开发工具,否则无法进行安装或安装报错
[root@localhost opt]# yum -y install openssl openssl-devel zlib zlib-devel pcre pcre-devel make gcc gcc-c++
安装nginx
[root@localhost ~]# cd /opt/[root@localhost opt]# wget http://nginx.org/download/nginx-1.17.6.tar.gz[root@localhost opt]# tar zxf nginx-1.17.6.tar.gz [root@localhost opt]# cd nginx-1.17.6/[root@localhost opt]# cd nginx-1.17.6/[root@localhost nginx-1.17.6]# [root@localhost nginx-1.17.6]# lsauto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src[root@localhost nginx-1.17.6]# ./configure --prefix=/usr/local/nginx && make && make install
启动测试nginx
[root@localhost nginx-1.17.6]# cd /usr/local/nginx/[root@localhost nginx]# lsconf html logs sbin[root@localhost nginx]# cd sbin/[root@localhost sbin]# ./nginx [root@localhost sbin]# netstat -anpl | grep nginx //查看端口tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 11881/nginx: master unix 3 [ ] STREAM CONNECTED 53405 11881/nginx: master unix 3 [ ] STREAM CONNECTED 53404 11881/nginx: master [root@localhost sbin]# ps aux | grep nginx //查看进程jia 5496 0.0 0.0 302400 852 ? Sl 10:58 0:00 /usr/libexec/ibus-engine-simpleroot 11881 0.0 0.0 20560 620 ? Ss 11:23 0:00 nginx: master process ./nginxnobody 11882 0.0 0.1 23080 1632 ? S 11:23 0:00 nginx: worker processroot 11896 0.0 0.1 112728 988 pts/0 S+ 11:24 0:00 grep --color=auto ngin
设置为系统命令
[root@localhost sbin]# ln nginx /usr/local/sbin/[root@localhost ~]# nginx -t //检查nginx语法nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[root@localhost ~]# nginx -s stop //停止nginx[root@localhost ~]# which nginx //查看启动程序位置/usr/local/sbin/nginx
方法一利用rc.local脚本
rc.local是启动加载文件,在linux中要把一个程序加入开机启动,一般可以通过修改rc.local来完成,这个文件时开机就要加载的文件,所以我们就可以利用linux这个文件设置nginx开机自启动
[root@localhost ~]# cat /etc/rc.local //文件存放在/etc目录下下面时rc.local的文件内容:#!/bin/bash# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES## It is highly advisable to create own systemd services or udev rules# to run scripts during boot instead of using this file.## In contrast to previous versions due to parallel execution during boot# this script will NOT be run after all other services.## Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure# that this script will be executed during boot.touch /var/lock/subsys/local
利用这个文件可以设置自己想在开机时启动的命令,直接把自己想执行的命令写到rc.local中就可以了
我们把nginx启动命令加入此文件中
[root@localhost ~]# echo sh /usr/local/nginx/sbin/nginx >> /etc/rc.local [root@localhost ~]# cat /etc/rc.local #!/bin/bash# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES## It is highly advisable to create own systemd services or udev rules# to run scripts during boot instead of using this file.## In contrast to previous versions due to parallel execution during boot# this script will NOT be run after all other services.## Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure# that this script will be executed during boot.touch /var/lock/subsys/local/usr/local/nginx/sbin/nginx如果你上面把nginx设置为系统命令那你就可以直接写命令就好了nginx
然后让我们重启系统再次查看端口和进程
[root@localhost ~]# reboot重启后发现nginx自动启动了[root@localhost ~]# netstat -anpl | grep nginxtcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4847/nginx: master unix 3 [ ] STREAM CONNECTED 39265 4847/nginx: master unix 3 [ ] STREAM CONNECTED 39264 4847/nginx: master [root@localhost ~]# ps aux | grep nginxroot 4847 0.0 0.0 20560 612 ? Ss 11:45 0:00 nginx: master process /usr/local/nginx/sbin/nginxnobody 4848 0.0 0.1 23080 1388 ? S 11:45 0:00 nginx: worker processroot 4860 0.0 0.1 112724 988 pts/0 S+ 11:45 0:00 grep --color=auto nginx[root@localhost ~]#
方法二设置系统服务
推荐设置开机自启
配置启动生成pid文件
pid文件是进程文件里面存放的是程序运行的进程ID也就是进程号
nginx生成pid文件需要修改配置文件
修改内容如下:
默认配置文件有这一条,如果没有请在nginx.conf中找到这一条然后将前面注释删除就可以了pid logs/nginx.pid;
在/usr/lib/systemd/system路径下添加nginx.service文件
/usr/lib/systemd/system 此目录是用来存放一些系统服务的
nginx文件内容:
[root@localhost system]# cat nginx.service [Unit]Description=nginx //描述After=syslog.target network.target remote-fs.target nss-lookup.target \\描述服务类别[Service]Type=forking //设置运行方式,后台运行PIDFile=/usr/local/nginx/logs/nginx.pid //设置PID文件ExecStart=/usr/local/nginx/sbin/nginx //启动命令ExecReload=/bin/kill -s HUP $MAINPID //重启命令ExecStop=/bin/kill -s QUIT $MAINPID //关闭命令PrivateTmp=true //分配独立的临时空间*注意命令需要写绝对路径[Install] ///服务安装的相关设置,可设置为多用户WantedBy=multi-user.target
注意:此文件需要754的权限
测试启动关闭
[root@localhost ~]# systemctl start nginx //启动服务[root@localhost ~]# netstat -anpl | grep nginxtcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5249/nginx: master unix 3 [ ] STREAM CONNECTED 42458 5249/nginx: master unix 3 [ ] STREAM CONNECTED 42459 5249/nginx: master [root@localhost ~]# systemctl stop nginx //关闭服务[root@localhost ~]# netstat -anpl | grep nginx[root@localhost ~]# systemctl restart nginx //重新启动服务[root@localhost ~]# netstat -anpl | grep nginxtcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5289/nginx: master unix 3 [ ] STREAM CONNECTED 45346 5289/nginx: master unix 3 [ ] STREAM CONNECTED 45347 5289/nginx: master
需要注意的是使用之前执行脚本来启动服务的,无法使用此方法关闭服务
设置开机自启动
[root@localhost ~]# systemctl enable nginxCreated symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.[root@localhost ~]# systemctl enable nginx
重启看效果
[root@localhost ~]# netstat -anpl | grep nginxtcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4081/nginx: master unix 3 [ ] STREAM CONNECTED 32429 4081/nginx: master unix 3 [ ] STREAM CONNECTED 32428 4081/nginx: master
init.d设置开机启动
init启动方式在centos7系统版本已经不推荐使用了
在/etc/init.d目录中创建启动文件nginx
文件内容如下:
#!/bin/bash# chkconfig: 345 80 20 //启动顺序# description: start the nginx deamon //说明# Source function library. /etc/rc.d/init.d/functionsprog=nginx# 根据自己的路径改写CATALANA_HOMECATALANA_HOME=/usr/local/nginxexport CATALINA_HOMEcase "$1" instart) echo "Starting nginx..." $CATALANA_HOME/sbin/nginx ;;stop) echo "Stopping nginx..." $CATALANA_HOME/sbin/nginx -s stop ;;restart) echo "Stopping nginx..." $CATALANA_HOME/sbin/nginx -s stop sleep 2 echo echo "Starting nginx..." $CATALANA_HOME/sbin/nginx ;;*) echo "Usage: $prog {start|stop|restart}" ;;esacexit 0
设置权限
[root@localhost ~]# chmod +x /etc/init.d/nginx //设置执行权限
测试启动
[root@localhost init.d]# service nginx start //启动nginxStarting nginx (via systemctl): [ 确定 ][root@localhost init.d]# netstat -anpl | grep nginxtcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4081/nginx: master unix 3 [ ] STREAM CONNECTED 38534 4081/nginx: master unix 3 [ ] STREAM CONNECTED 38535 4081/nginx: master [root@localhost init.d]# service nginx stop //关闭nginxStopping nginx (via systemctl): [ 确定 ][root@localhost init.d]# netstat -anpl | grep nginx[root@localhost init.d]# service nginx restart //重新启动nginxRestarting nginx (via systemctl): [ 确定 ][root@localhost init.d]# netstat -anpl | grep nginxtcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5304/nginx: master unix 3 [ ] STREAM CONNECTED 43218 5304/nginx: master unix 3 [ ] STREA
在centos7中init.d中的服务默认也会在system目录中
文件
命令
服务
系统
目录
进程
配置
内容
权限
程序
路径
测试
运行
编译
方式
方法
版本
端口
脚本
推荐
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全等级保护核心
重庆电话软件开发服务哪些行业
宋代数据库
校内教师参与软件开发
腾讯阿里巴巴有多少服务器
南京厂家代理服务器供货厂
永州网络安全国家队
数据中心机房网络安全管理
天津数据软件开发服务厂家现货
济南浪潮存储服务器哪家好
画一幅有关网络安全的手镯
产品设置和软件开发哪个好
应用软件开发助理见习记录
数据库的cpu占用
广州计算机网络技术培训学校
沈阳机架式服务器生产厂商
创建数据库之前做什么
软件开发来柚米科技
京东数据库设计
软件开发文档学生模板下载
肇庆通信软件开发价钱
杨浦区微型软件开发服务
新城区开展网络安全宣传周
access数据库读取
远程数据库怎么样
软件开发工程师是干什么的英语
专门写设备软件开发的公司
本地域名服务器怎么工作
贵州定制软件开发有哪些
数据库与用户交流最好的界面