编译安装nginx时配置开机自启
详细编译安装nginx请参考【Nginx目录结构与配置文件详解】以及【Nginx安装部署】,在这里就进行简单安装
安装Nginx
环境介绍
操作系统:
[root@localhost ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@localhost ~]# uname -a Linux localhost.localdomain -.el7.x86_64 # SMP Thu Nov :: UTC 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.gz [root@localhost opt]# cd nginx-/ [root@localhost opt]# cd nginx-/ [root@localhost nginx-]# [root@localhost nginx-]# ls auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src [root@localhost nginx-]# ./configure --prefix=/usr/local/nginx && make && make install
启动测试nginx
[root@localhost nginx-]# cd /usr/local/nginx/ [root@localhost nginx]# ls conf html logs sbin [root@localhost nginx]# cd sbin/ [root@localhost sbin]# ./nginx [root@localhost sbin]# netstat -anpl | grep nginx //查看端口 tcp /nginx: master unix [ ] STREAM CONNECTED /nginx: master unix [ ] STREAM CONNECTED /nginx: master [root@localhost sbin]# ps aux | grep nginx //查看进程 jia ? Sl : : /usr/libexec/ibus-engine-simple root ? Ss : : nginx: master process ./nginx nobody ? S : : nginx: worker process root pts/ S+ : : 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 ok nginx: 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 nginx tcp /nginx: master unix [ ] STREAM CONNECTED /nginx: master unix [ ] STREAM CONNECTED /nginx: master [root@localhost ~]# ps aux | grep nginx root ? Ss : : nginx: master process /usr/local/nginx/sbin/nginx nobody ? S : : nginx: worker process root pts/ S+ : : 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 nginx tcp /nginx: master unix [ ] STREAM CONNECTED /nginx: master unix [ ] STREAM CONNECTED /nginx: master [root@localhost ~]# systemctl stop nginx //关闭服务 [root@localhost ~]# netstat -anpl | grep nginx [root@localhost ~]# systemctl restart nginx //重新启动服务 [root@localhost ~]# netstat -anpl | grep nginx tcp /nginx: master unix [ ] STREAM CONNECTED /nginx: master unix [ ] STREAM CONNECTED /nginx: master
需要注意的是使用之前执行脚本来启动服务的,无法使用此方法关闭服务
设置开机自启动
[root@localhost ~]# systemctl enable nginx Created 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 nginx tcp /nginx: master unix [ ] STREAM CONNECTED /nginx: master unix [ ] STREAM CONNECTED /nginx: master
init.d设置开机启动
init启动方式在centos7系统版本已经不推荐使用了
在/etc/init.d目录中创建启动文件nginx
文件内容如下:
#!/bin/bash
# chkconfig: //启动顺序
# description: start the nginx deamon //说明
# Source function library
. /etc/rc.d/init.d/functions
prog=nginx
# 根据自己的路径改写CATALANA_HOME
CATALANA_HOME=/usr/local/nginx
export CATALINA_HOME
case "$1" in
start)
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
echo
echo "Starting nginx..."
$CATALANA_HOME/sbin/nginx
;;
*)
echo "Usage: $prog {start|stop|restart}"
;;
esac
exit
设置权限
[root@localhost ~]# chmod +x /etc/init.d/nginx //设置执行权限
测试启动
[root@localhost init.d]# service nginx start //启动nginx Starting nginx (via systemctl): [ 确定 ] [root@localhost init.d]# netstat -anpl | grep nginx tcp /nginx: master unix [ ] STREAM CONNECTED /nginx: master unix [ ] STREAM CONNECTED /nginx: master [root@localhost init.d]# service nginx stop //关闭nginx Stopping nginx (via systemctl): [ 确定 ] [root@localhost init.d]# netstat -anpl | grep nginx [root@localhost init.d]# service nginx restart //重新启动nginx Restarting nginx (via systemctl): [ 确定 ] [root@localhost init.d]# netstat -anpl | grep nginx tcp /nginx: master unix [ ] STREAM CONNECTED /nginx: master unix [ ] STREA
在centos7中init.d中的服务默认也会在system目录中
编译安装nginx时配置开机自启的更多相关文章
- 【转】linux 编译安装nginx,配置自启动脚本
linux 编译安装nginx,配置自启动脚本 本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装ng ...
- linux 编译安装nginx,配置自启动脚本
本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装nginx,记录下安装过程: 参照这篇文章:Linu ...
- Ubuntu编译安装nginx以及配置自动启动
本文主要介绍ubuntu如何编译安装nginx以及遇到的问题 和 配置系统自动启动服务 查看操作系统版本 cat /etc/issue Ubuntu 18.04.3 LTS \n \l 更改镜 ...
- 源码编译安装nginx及设置开机启动项
1.上传nginx文档:解压到/data目录下,并安装依赖包tar xf nginx-1.20.1.tar.gz -C /data/cd /data/nginx-1.20.1/ && ...
- 【转】解决编译安装NGINX时make报错
编译参数:--[root@localhostnginx-1.4.6]#./configure--user=nginx--group=nginx--prefix=/usr/local/nginx--wi ...
- nginx 编译安装以及简单配置
前言 Nginx的大名如雷贯耳,资料太多了,网上一搜一大把,所以这里就不阐述nginx的工作原理了,只是简单的编译安装nginx,然后呢,简单配置一下下. 下载Nginx.安装 下载地址:http:/ ...
- Ubuntu 1604 安装配置 kafka,并配置开机自启(systemctl)
安装 kafka 需要先安装 jdk.一.下载官网:http://kafka.apache.org/downloads.html 二.安装 安装参考:https://segmentfault.com/ ...
- Centos7编译安装Nginx+keepalived
一.安装环境.主机信息及软件版本 Nginx:1.12.2keepalived:2.0.12时间同步(同步后确认各服务器时间是否一致,不一致需要修改一下时区) 关闭防火墙 二.编译安装Nginx 1. ...
- Centos7 编译安装 Nginx PHP Mariadb Memcached 扩展 ZendOpcache扩展 (实测 笔记 Centos 7.3 + Mariadb 10.1.20 + Nginx 1.10.2 + PHP 7.1.0 + Laravel 5.3 )
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...
随机推荐
- 使用CXF发布webservice服务及注意要点
一.概念 1.什么是webservice Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML标准来描述.发布.发现.协调和配置这些应用程序,用 ...
- Java设计模式(20):命令模式
本文源码:GitHub·点这里 || GitEE·点这里 一.生活场景 1.场景描述 智能电脑的品牌越来越多,由此诞生了一款电脑控制的APP,万能遥控器,用户在使用遥控器的时候,可以切换为自家电视的品 ...
- ASP.NET Core 1.0: API的输入参数
Web API是需要接受参数的,譬如,通常用于创建数据的POST method需要接受输入数据,而用于GET method也需要接受一些可选参数,譬如:为了性能起见,控制返回数据的数量是至关重要的. ...
- XjhDemo 插入数据
create database XjhDemo gouse XjhDemogo --商品类别Create table Sort( SortId int primary key identity(1,1 ...
- go中的关键字-defer
1. defer的使用 defer 延迟调用.我们先来看一下,有defer关键字的代码执行顺序: func main() { defer func() { fmt.Println("1号输出 ...
- SQLite性能 - 它不是内存数据库,不要对IN-MEMORY望文生意。
SQLite创建的数据库有一种模式IN-MEMORY,但是它并不表示SQLite就成了一个内存数据库.IN-MEMORY模式可以简单地理解为,本来创建的数据库文件是基于磁盘的,现在整个文件使用内存空间 ...
- SpringBoot学习(三)—— springboot快速整合swagger文档
目录 MyBatis 简介 引入mybatis组件 代码实战 MyBatis @ 简介 优点 最大的优点是SQL语句灵活,适合调优情景,业务复杂情景 劣势 最大的劣势是不同数据库之间的迁移 引入myb ...
- tcp和udp的网络编程(发送消息及回复)
一.UDP 无连接的 高效的 基于数据报的 不可靠 的连接 主要的应用场景: 需要资源少,网络情况稳定的内网,或者对于丢包不敏感的应用,比如 DHCP 就是基于 UDP 协议的.不需要一对一沟 ...
- Python 深入浅出支持向量机(SVM)算法
相比于逻辑回归,在很多情况下,SVM算法能够对数据计算从而产生更好的精度.而传统的SVM只能适用于二分类操作,不过却可以通过核技巧(核函数),使得SVM可以应用于多分类的任务中. 本篇文章只是介绍SV ...
- Mybaits学习总结
一.Mybatis介绍 邮箱:1727292697 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的 ...