CentOS7安装Nginx1.14.2[通俗易懂]

2022-09-05 19:12:01 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

安装make:

代码语言:javascript复制
yum -y install gcc automake autoconf libtool make

安装g :

代码语言:javascript复制
yum install gcc gcc-c  

安装pcre和pcre-devel

代码语言:javascript复制
yum install -y pcre pcre-devel

安装zlib zlib提供了很多压缩和解方式,nginx需要zlib对http进行gzip

代码语言:javascript复制
yum install -y zlib zlib-devel

安装openssl openssl是一个安全套接字层密码库,nginx要支持https,需要使用openssl

代码语言:javascript复制
yum install -y openssl openssl-devel

下载nginx

代码语言:javascript复制
wget http://nginx.org/download/nginx-1.14.2.tar.gz

解压

代码语言:javascript复制
tar -zxvf nginx-1.14.2.tar.gz

cd到文件路径

代码语言:javascript复制
cd nginx-1.14.2

编译

代码语言:javascript复制
 ./configure --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/tem/nginx/client --http-proxy-temp-path=/var/tem/nginx/proxy --http-fastcgi-temp-path=/var/tem/nginx/fcgi --with-http_stub_status_module

安装

代码语言:javascript复制
make && make install

创建开机启动命令脚本文件

代码语言:javascript复制
vim /etc/init.d/nginx

插入启动脚本代码

代码语言:javascript复制
    #!/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
	
	# 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" #对应编译安装时的sbin-path
	prog=$(basename $nginx)

	NGINX_CONF_FILE="/etc/nginx/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:" | sed 's/[^*]*--user=([^ ]*).*/1/g' -`
	   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
	}

	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

保存

代码语言:javascript复制
:wq

设置所有人都有对这个启动脚本nginx文件的执行权限

代码语言:javascript复制
chmod a x /etc/init.d/nginx

把nginx加入系统服务中

代码语言:javascript复制
chkconfig --add nginx

如果出现 [emerg] mkdir() “/var/temp/nginx/client” failed (2: No such file or directory) 错误 执行

代码语言:javascript复制
sudo mkdir -p /var/tem/nginx/client

检查nginx配置是否成功

代码语言:javascript复制
nginx -t

启动

代码语言:javascript复制
nginx 

重启

代码语言:javascript复制
nginx -s reload

如果您正在运行防火墙,请运行以下命令以允许HTTP和HTTPS通信:

代码语言:javascript复制
 sudo firewall-cmd --permanent --zone=public --add-service=http 
 sudo firewall-cmd --permanent --zone=public --add-service=https
 sudo firewall-cmd --reload

至此服务器配置完成。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/135311.html原文链接:https://javaforall.cn

0 人点赞