CentOS 7.x下安装Nginx

CentOS 7.x下安装Nginx

Nginx是一款高性能的HTTP服务器,具有占用内存小,性能强等特点,本文主要介绍在CentOS 7.x环境下使用源码编译安装Nginx的具体步骤,以及设置开机自启动服务等内容。

安装所需环境

第一步:安装gcc库

安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境, 可以使用如下命令安装:

sudo yum install -y gcc

第二步:安装PCRE PCRE-DEVEL依赖库

PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括Perl兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库,pcre-devel是使用pcre二次开发的库,nginx也需要此库,如下所示:

sudo yum install -y pcre pcre-devel

第三步:安装zlib库

zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip压缩,所以需要安装此库,如下所示:

sudo yum install -y zlib zlib-devel

第四步:安装OpenSSL库

OpenSSL是一个强大的安全套接字层密码库,囊括了主要的密码算法,常用的密钥和证书封装管理功能及SSL协议,并提供了丰富的应用程序供测试或其他目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要安装此库,如下所示:

sudo yum install -y openssl openssl-devel

第五步:下载nginx安装包

安装好依赖环境后,我们需要到官网下载nginx的tar.gz的源码包,如下所示:

wget http://nginx.org/download/nginx-1.14.2.tar.gz

本文使用nginx最新稳定版作为测试安装包,使用wget命令即可下载。

第六步:解压

tar -zxvf nginx-1.14.2.tar.gz
cd nginx-1.14.2/

第七步:配置编译和安装

接下来我们需要配置相关编译安装参数,如果默认安装配置的话可以直接使用 ./configure,这里我们不使用nginx默认安装路径及配置,我们这里将把nginx安装到/opt/nginx目录下,如下所示:

./configure \
--prefix=/opt/nginx \
--conf-path=/opt/nginx/conf/nginx.conf \
--pid-path=/opt/nginx/conf/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi

注意:将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录。

接下来我们进行编译安装,如下所示:

sudo make
sudo make install

第八步:启动、停止nginx

安装完成后,我们来启动nginx,切换到/opt/nginx/sbin目录,使用如下命令启动nginx:

cd /opt/nginx/sbin
sudo ./nginx  #启动nginx
sudo ./nginx -s stop
sudo ./nginx -s quit
sudo ./nginx -s reload

./nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。
./nginx -s stop:此方式相当于检查出nginx的进程id再使用kill命令强制杀掉进程。

查询nginx进程

ps aux|grep nginx

nginx启动之后,我们可以在浏览器中输入 http://localhost 查看是否能够访问到nginx的欢迎页面。

第九步:创建系统服务

为了能够使得nginx随着开机自动启动,我们这里要为nginx添加系统服务,这里使用SysV方式添加系统服务。首先我们先在/etc/rc.d/init.d目录下创建名为nginx的文件,然后加入如下脚本内容:

#!/bin/sh
# Configuration Nginx is a higher http and proxy server.
# chkconfig:- 85 15
# description:Nginx is an HTTP and proxy server.
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Should-Start: $syslog $named
# Should-Stop: $syslog $named
# Short-Description: start and stop nginx
# Description: Nginx daemon

set -e
NAME=nginx
NGINX=/usr/local/nginx/sbin/$NAME
NGINX_PID=/usr/local/nginx/logs/$NAME.pid
CONF=/usr/local/nginx/conf/$NAME.conf

#Check the nginx executable file exist.
test -x $NGINX || exit 0

case "$1" in
start)
    if [ -f $NGINX_PID ]
    then
        echo  "$NGINX_PID exists,process is already running or crashed"
    else
        echo  "Startting nginx server……"
        $NGINX -c $CONF
    fi
    ;;
stop)
    if [ ! -f $NGINX_PID ]
    then
        echo  "$NGINX_PID does not exist,process is not running"
    else
        PID=$(cat $NGINX_PID)
        kill -quit $PID
        echo  "Nginx stopped"
    fi
    ;;
status)
    if [ ! -f $NGINX_PID ]
    then
        echo  "Nginx is not running……"
    else
        PID=$(cat $NGINX_PID)
        echo  "Nginx is running ($PID)"
    fi
    ;;
restart)
    $NGINX -t -c $CONF
    echo  "Nginx restartting……"
    kill -HUP `cat $NGINX_PID`
    sleep 2
    ;;
*)
    echo "Please use start, stop, restart or status as first argument"
   ;;
esac

设置可执行权限

sudo chmod 755 nginx

将nginx添加到服务列表

sudo chkconfig --add nginx

查看SysV服务列表

sudo chkconfig --list nginx

开启nginx服务

sudo service nginx start

关闭nginx服务

sudo service nginx stop

重启nginx服务

sudo service nginx restart

查看nginx服务状态

sudo service nginx status
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值