文章目录
Windows
使用环境:Windows 10 专业版,nginx 1.20.1
通过两种方式实现nginx的开机自启动:winws和window计划程序。
一、winws实现nginx开机自启动
1、首先下载关于winws的程序包
2、将下载后的Winws文件放置nginx文件夹中,并将winws.exe文件修改文件名为nginx-service.exe
3、在nginx安装目录下新建一个ngingx-service.xml文件,内容为:
<service><id>nginx</id><name>nginx</name><description>nginx</description><logpath>D:\ProjectSource\nginx</logpath><logmode>roll</logmode><depend></depend><executable>D:\ProjectSource\nginx\nginx.exe</executable><stopexecutable>D:\ProjectSource\nginx\nginx.exe -s stop</stopexecutable></service>
// 注意:根据nginx安装目录不同,
// 修改对应的logpath、executable、stopexecutable标签
4、cmd(管理员身份)进入nginx的安装目录,执行:nginx-service.exe install命令,然后进入系统服务,看是否注册nginx服务成功并且检查是否设置为自动启动
二、通过windows程序计划设定nginx开机自启动
1、按下win键输入计划,回车
2、找到windows目录,在当下目录创建新任务
3、自定义名称描述
4、将触发设定为开机自启动
5.点击下一步,程序或脚本选择nginx.exe所在目录,要把下面的起始于 处填上 nginx.exe的所在路径 点击下一步
6、后续设定根据实际需求完成即可,可参考一下配置
7、在完成配置后确认即可
Linux
方法一:
1、创建脚本文件:
在
usr/lib/systemd/system/nginx.service
目录下创建脚本文件:
vi /usr/lib/systemd/system/nginx.service
2、脚本文件内容:
[Unit]
Description=nginx - web server
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=/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
注意:一定要注意脚本中的nginx的路径是不是安装后的nginx的路径!!!
- 配置完脚本文件之后,重新加载一下系统服务:
systemctl daemo-reload
- 启动服务:
systemctl start nginx.service
- 开机启动:
systemctl enable firewalld.service
- 执行完之后,就可实现开机启动了!!
- 测试:reboot(重启linux机器)
方法二:
- 在/etc/init.d/ 目录下创建nginx文件
创建命令:
vim /etc/init.d/nginx
- 并将下面的内容添加到刚创建的nginx文件里面
#!/bin/sh
#
# nginx -this script starts and stops the nginx daemon
#
# chkconfig:-8515
# description:NGINX is an HTTP(S) server,HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config:/etc/nginx/nginx.conf
# config:/etc/sysconfig/nginx
# Source function library../etc/rc.d/init.d/functions
# Source networking configuration../etc/sysconfig/network
# Check that networking is up.["$NETWORKING"="no"]&& exit 0
pidfile="/usr/local/nginx/logs/nginx.pid"
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"[-f /etc/sysconfig/nginx ]&&./etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs(){
# make required directories
user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`if[-n "$user"]; then
if[-z "`grep $user /etc/passwd`"]; then
useradd -M-s /bin/nologin $user
fi
options=`$nginx -V 2>&1 | grep 'configure arguments:'`for opt in $options;doif[`echo $opt | grep '.*-temp-path'`]; then
value=`echo $opt | cut -d "=" -f 2`if[!-d "$value"]; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
fi
}start(){[-x $nginx ]|| exit 5[-f $NGINX_CONF_FILE]|| exit 6
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0]&& touch $lockfile
return $retval
}stop(){
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0]&& rm -f $lockfile
return $retval
}restart(){
configtest ||return $?
stop
sleep 1
start
}reload(){
configtest ||return $?
echo -n $"Reloading $prog: "
killproc $prog -HUP
retval=$?
echo
}force_reload(){
restart
}configtest(){
$nginx -t -c $NGINX_CONF_FILE}rh_status(){
status $prog
}rh_status_q(){
rh_status >/dev/null2>&1}case"$1"in
start)
rh_status_q && exit 0
$1;;
stop)
rh_status_q || exit 0
$1;;
restart|configtest)
$1;;
reload)
rh_status_q || exit 7
$1;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0;;*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
- 主配置文件修改:
pidfile="/usr/local/nginx/logs/nginx.pid"//nginx.pid所在位置
nginx="/usr/local/nginx/sbin/nginx"//nginx 执行程序所在位置
prog=$(basename $nginx)NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"//nginx 配置文件所在位置
- 如果找不到,或者忘记了上述文件所在位置,可以通过命令find 查找
find /-name nginx
- 授予权限
chmod a+x /etc/init.d/nginx //a表示所有,+表示添加,x表示可执行
- 测试service启动
service nginx start 启动
service nginx restart 重启
service nginx stop 停止
- 如果执行没有问题就可以通过chkconfig 命令设置开机启动
chkconfig --add nginx //先执行
chkconfig nginx on //后执行
- 最后可以通过chkconfig --list 查看自启动程序
- reboot 重启linux测试nginx自启动配置
版权归原作者 博客zhu虎康 所有, 如有侵权,请联系我们删除。