Linux上安装nginx学习笔记

开头先放点用得着的命令(最好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 2

esac
 

# 再给/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服务,再重新加载,否则加载不成功会报错
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值