Nginx安装

本文介绍Linux环境下安装 Nginx ,在安装之前可以查询一下是否安装过。
可以使用以下两种方式

  • whereis nginx
  • find / -name nginx

1.下载nginx安装包

官网下载 ->传送门

wget命令服务器直接下载

cd /usr/local
wget -c https://nginx.org/download/nginx-1.16.0.tar.gz

2.安装编译环境及库文件

2.1. 安装gcc
说明:编译依赖 gcc 环境

yum install gcc-c++

2.2. 安装PCRE pcre-devel
说明:pcre-devel 是一个正则表达式库
这里使用 yum安装的方式

yum install -y pcre pcre-devel

2.3.安装zlib
说明:提供压缩算法,zlib为Nginx提供数据压缩用的函式库。

yum install -y zlib zlib-devel

2.4.安装Open SSL
说明:nginx 支持 http与 https协议,在ssl 协议上传输 http,如果使用 https,需安装 OpenSSL 库

yum install -y openssl openssl-devel

3.解压安装包

#切换到下载目录
cd /usr/local

#解压第一步下载的压缩包
tar -zxvf nginx-1.16.0.tar.gz

#切换到文件下
cd nginx-1.16.0

文件夹解压后在这里插入图片描述

4.配置与安装

注:切换到 nginx-1.16.0目录下

configure为配置,一般默认即可

./configure


编译

make


注:在以上编译若出现问题,请检查前几步,编译环境与库文件是否已经安装成功


编译成功-执行安装

make install

安装完成会发现在 /usr/local下多了一个nginx目录,接下来,启动nginx。

5.环境变量配置

注:经测试,不配置也可以使用,建议配置一下

 vim /etc/profile 


编辑/etc/profile 增加如下内容:

# 安装路径
export NGINX_HOME=/usr/local/nginx
export PATH=$PATH:$NGINX_HOME/sbin
#更改环境变量后生效
source /etc/profile 

6.启动与关闭

进入/usr/local/nginx/sbin目录,输入./nginx即可启动nginx

cd /usr/local/nginx/sbin
./nginx

关闭nginx

./nginx -s quit  或者 ./nginx -s stop


重启nginx

./nginx -s reload

查看nginx进程

ps -ef|grep nginx 或者 ps aux|grep nginx


查看版本

 nginx -v

在这里插入图片描述由于nginx默认监听端口就是80,所以在浏览器上输入ip地址,即可访问nginx,如:http://ip,进行访问
在这里插入图片描述

7.设置开机自启

nginx官方提供了启动脚本:传送门

7.1配置步骤

在/etc/init.d下创建文件nginx

vim /etc/init.d/nginx

7.2添加脚本内容

内容就是官方起启动脚本(/etc/init.d/nginx),如下:

#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15
# 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
# pidfile:     /var/run/nginx.pid
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"

[ -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; do
          if [ `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 $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

7.3修改脚本内容

7.3.1脚本中12行,pid文件位置,可以在nginx运行时查看,命令:find / -name nginx.pid

pidfile="/usr/local/nginx/logs/nginx.pid"

若不存在可自行创建 示例: touch /usr/local/nginx/logs/nginx.pid
    
7.3.2在脚本中22行(nginx="/usr/sbin/nginx")修改nginx脚本文件位置

nginx="/usr/local/nginx/sbin/nginx"

7.3.3在脚本中25行(NGINX_CONF_FILE="/etc/nginx/nginx.conf")修改nginx配置文件位置

NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

7.4脚本可执行权限

服务启动:service nginx start
服务停止:service nginx stop
服务重新加载:service nginx restart 

7.5添加开机启动项

添加开机启动项:chkconfig --add /etc/init.d/nginx
查看启动项:chkconfig --list
设置nginx启动:chkconfig nginx on
关闭命令为:chkconfig nginx off
删除命令为:chkconfig --del nginx

7.6重启验证

8.其它

安装之后开启 Nginx,如果系统开启了防火墙,那么需要设置一下在防火墙中加入需要开放的端口,常用的防火墙操作

systemctl start firewalld  # 开启防火墙
systemctl stop firewalld   # 关闭防火墙
systemctl status firewalld # 查看防火墙开启状态,显示running则是正在运行
firewall-cmd --reload      # 重启防火墙,永久打开端口需要reload一下

# 添加开启端口,--permanent表示永久打开,不加是临时打开重启之后失效
firewall-cmd --permanent --zone=public --add-port=8888/tcp

# 查看防火墙,添加的端口也可以看到
firewall-cmd --list-all
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐