云网牛站
所在位置:首页 > Linux云服务器 > CentOS 7系统源码安装和配置Nginx服务器

CentOS 7系统源码安装和配置Nginx服务器

2018-08-14 16:04:15作者:ngle稿源:一新的领地

在一台最小化安装的CentOS 7系统虚拟机中源码安装并且配置Nginx服务器,以下是详细的安装配置步骤。

 

一、安装nginx

1.安装nginx依赖包:

yum install -y pcre-devel zlib-devel openssl-devel wget gcc tree vim

Nginx依赖于pcre、zlib、openssl,在编译前配置时如果有问题可以使用yum方式安装三个包(pcre-devel、zlib-devel、openssl-devel)

1CentOS 7系统源码安装和配置Nginx服务器

2.从Nginx官网下载Nginx源码包(也可以使用新一点的nginx 1.15.2版本,本文使用稳定点的1.12.2版本。)

如果使用nginx 1.15.2版本:

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

本文使用的是nginx 1.12.2版本:

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

CentOS 7系统源码安装和配置Nginx服务器

3.解压Nginx源码包到/root/nginx,并查看Nginx源文件结构(如果下载的是nginx 1.15.2版本则下面相应改为nginx 1.15.2。)

tar -xzvf nginx-1.12.2.tar.gz

CentOS 7系统源码安装和配置Nginx服务器

4.在/root/nginx目录进行编译前配置:

cd /root/nginx*

./configure --prefix=/usr/local/nginx --with-http_ssl_module

CentOS 7系统源码安装和配置Nginx服务器

5.在/root/nginx目录执行编译安装:

make && make install

CentOS 7系统源码安装和配置Nginx服务器

 

二、启动nginx

1.关闭防火墙:

setenforce 0

systemctl stop firewalld

systemctl disable firewalld

CentOS 7系统源码安装和配置Nginx服务器

2.进入到安装目录/usr/local/nginx,查看目录结构:

cd /usr/local/nginx

pwd

ls

CentOS 7系统源码安装和配置Nginx服务器

3.启动Nginx:

/usr/local/nginx/sbin/nginx

4.查看Nginx进程是否启动:

ps aux | grep nginx

CentOS 7系统源码安装和配置Nginx服务器

5.查看Nginx占用的端口号:

netstat -tlnp

CentOS 7系统源码安装和配置Nginx服务器

使用本地主机访问虚拟机上的Nginx服务器。

 

三、停止nginx

停止Nginx的三种方式:

1.立即停止Nginx服务

/usr/local/nginx/sbin/nginx -s stop

2.完成当前任务后停止

/usr/local/nginx/sbin/nginx -s quit

3.杀死Nginx进程

killall nginx

 

四、把nginx命令添加到环境变量

1.使用软连接将nginx链接到/usr/local/sbin:

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin

ll /usr/local/sbin/ | grep "nginx"

CentOS 7系统源码安装和配置Nginx服务器

2.显示当前环境变量PATH:

echo $PATH

3.编辑.bash_profile文件:

vim ~/.bash_profile

4.在.bash_profile文件末尾加入以下内容:

export PATH=$PATH:/usr/local/nginx/sbin

CentOS 7系统源码安装和配置Nginx服务器

5.引用.bash_profile文件:

source ~/.bash_profile

6.使用nginx命令:

# 启动nginx

nginx

# 停止nginx

nginx -s quit

 

五、把nginx命令添加到系统服务

1.创建并编辑文件/root/service-nginx.sh:

#!/bin/sh

#

# filename: service-nginx.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

# 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/sbin/nginx"

prog=$(basename $nginx)

#NGINX_CONF_FILE="/etc/nginx/nginx.conf"

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

# END

2.用/root/service-nginx.sh替换/etc/init.d/nginx:

mv /root/service-nginx.sh /etc/init.d/nginx

3.赋予可执行限权:

chmod 755 /etc/init.d/nginx

4.执行:

systemctl start nginx

 

附:源码方式安装nginx,自动化安装脚本

#!/bin/bash

# installation configuration

NGINX_VERSION=1.12.2

NGINX_SRC_PATH=/root

NGINX_BIN_PATH=/usr/local/nginx

# disable firewall

systemctl stop firewalld

setenforce 0

# installation dependence

yum install -y pcre-devel zlib-devel openssl-devel wget gcc

# download nginx source package

cd ${NGINX_SRC_PATH}

wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz

# unzip source package

tar -xzvf nginx-${NGINX_VERSION}.tar.gz

cd ./nginx-${NGINX_VERSION}

# install nginx

./configure --prefix=${NGINX_BIN_PATH} --with-http_ssl_module

make & make install

# start nginx service

cd ${NGINX_BIN_PATH}/sbin

./nginx

# END

 

相关主题

CentOS安装Nginx服务器Mainline版本

精选文章
热门文章