开头先放点用得着的命令(最好root模式下执行,养成好习惯)
# 启动nginx
systemctl start nginx
# 重启nginx
systemctl restart nginx
# 停止nginx
sudo systemctl stop nginx
# 重新加载nginx配置(一般这个命令在我们调整过nginx.conf配置文件的时候需要使用到)
systemctl reload nginx (两个命令二选一使用,第一个不行用第二个)
service nginx reload (第二个还不行就百度吧......,一般都不行可能是配置文件格式出问题,可以尝试查看nginx的报错信息)
# 设置开机启动 (同样是两个选一个使用)
systemctl enable nginx
systemctl enable nginx.service
# 查看状态
sudo systemctl status nginx
nginx的安装有两种方法:
1. yum一键安装
优点是方便,傻瓜式安装
缺点是如果你不会设置安装源的话,很大概率一键安装都是安装最新版,随着后面的更新迭代,每个版本的目录结构会有区别,新手容易懵圈
# 以下命令可以实现一键安装最新版的nginx(截至目前,最新版是1.20)
sudo yum install nginx
2. 源码包手动安装(参考地址:(40条消息) Linux(centos8.2)安装nginx1.16.1_linux安装nginx1.16.1_不明不白的小白白的博客-CSDN博客下面步骤1到7建议是按照这位大哥的步骤去安装,看了一下,貌似大哥是安装在默认位置的,一般系统会从默认位置读取配置信息,下面的命令我更改过目录,一开始是安装在自己的自定义目录的,后来发现自定义目录的配置不生效,检查后发现启动的是/usr/local/ 下的nginx,并非自定义目录上的nginx,虚拟机是新安装的,不清楚是执行 ./configure 命令的时候他安装在了默认位置上还是虚拟机本身就自带了一个nginx,暂时排查不出来)
建议就是,如果nginx能够启动,使用命令 ps -ef | grep nginx 查找对应的启动目录 ,例如,查出来的目录是 /usr/local/nginx ,那么就在该目录下找他的nginx.conf配置文件进行修改就行。
# 1. 建议是安装1.16.1 ,我用的最多
# 安装1.16.1安装步骤,由于nginx是C语言编写,需要先下载依赖包
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
# 2. 由于下载安装包需要用到wget ,所以需要下载一下(一般虚拟机上都已经安装了,不碍事,执行一下以防万一)
yum install wget
# 3. 下载对应版本的nginx (下方命令执行后压缩包会下载在你当前所在的目录下)
wget https://nginx.org/download/nginx-1.16.1.tar.gz
# 4. 解压压缩包并将其解压到目标位置中
tar -zxvf nginx-1.16.1.tar.gz -C /usr/local/
# 5. 创建nginx目录
mkdir -p /usr/local/nginx
# 6. 执行命令,开始安装到nginx目录上(当前位置处于nginx-1.16.1目录中)
./configure --prefix=/usr/local/nginx
# 7. 编译和安装
make && make install
# 还没可以哦,还需要将nginx添加到系统服务中
# 否则,运行开头的启动命令会报错Unit not found.
vim /etc/init.d/nginx
# 再将下述代码粘贴进去(记得wq保存退出)
#!/bin/sh
# nginx - this script starts and stops the nginx daemin
#
# chkconfig: - 85 15# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server# processname: nginx
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/logs/nginx.pid# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
lockfile=/var/lock/subsys/nginx
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
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
start
}
reload() {configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {rh_status >/dev/null 2>&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 2esac
# 再给/etc/init.d/nginx 加上权限,并将nginx加入到系统服务中
chmod 755 /etc/init.d/nginx
chkconfig --add nginx
# 执行启动命令,就可以正常启动nginx
systemctl start nginx
# 如何查看是否启动成功呢
1. 执行启动命令后,打开虚拟机上的火狐浏览器,输入localhost:80 回车,能够看到Welcome to nginx! 证明启动成功
2. ps -ef | grep nginx 执行该命令一般会看到三行数据,证明启动成功
3. sudo systemctl status nginx 直接查看状态,active (running) 绿色字样代表运行成功
关于nginx的配置方面我不展开写了,可以去找找别的大神的配置,一般配置nginx都是在nginx.conf文件中进行配置的
最后的最后,提醒一句,不要轻易用kill命令直接杀进程,杀不干净会影响nginx的启动,这是个大坑。
# 已经用了而且没法启动,救命命令
ps aux | grep nginx (查找所有的nginx进程)
sudo killall -9 nginx (杀死所有nginx进程)
sudo rm /usr/local/nginx/logs/nginx.pid (删除旧的PID文件)# 重启就行
PS:还有一个坑,修改配置文件后,一定要先启动ngixn服务,再重新加载,否则加载不成功会报错