centos7中安装nginx服务

使用yum安装nginx

  1. 配置nginx的Yum源:Nginx官网配置Yum源教程
    官网yum源配置文档!
    我们使用稳定版本的repo配置文件即可,vim 创建打开/etc/yum.repos.d/nginx.repo进行编辑
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0  
enabled=1
  1. 配置好以后在终端窗口进行安装
yum install -y nginx

安装好以后查看yum安装的nginx版本核对

nginx -V

Nginx
里面指定了nginx安装过程中安装文件的指定路径,使用-v可以只查看版本号

  1. 启动之前务必检查是否 关闭防火墙和selinux防火墙(也可以设置针对端口号关闭防火墙)
// 查看防火墙运行状态
firewall-cmd --state
// 查看文件防火墙运行状态
getenforce
// 关闭防火墙
systemctl stop firewalld
// 关闭文件防火墙
setenforce 0
// 开机关闭电脑防火墙
systemctl disable firewalld
// 开启nginx
systemctl start nginx
// 开机自动启动nginx
systemctl enable nginx
  1. 查看nginx服务是否启动
// linux终端输入
ps aux |grep nginx

nginx启动
也可以查看端口是否成功启动

// linux终端输入
netstat -tnlp 

nginx
我这里是开启了两个端口服务,正常的话是80 可以在/etc/nginx/nginx.conf里面设置

使用编译安装Nginx

  1. nginx是基于C写的,所以编译的之前需要配置编译环境
// gcc c++标准编译环境--pcre软件包(使nginx支持http rewrite模块)--openssl-devel(使nginx支持ssl)--Zlib 可以让 Nginx 支持压缩和解压缩功能
yum -y install gcc gcc-c++  pcre pcre-devel openssl openssl-devel zlib zlib-devel
  1. 创建nginx使用用户,做好准备工作
// 创建user用户nginx
useradd nginx
  1. 访问Nginx官网网站,Nginx是开源的 Nginx官网
    Nginx官方网站
    在右侧找到download进入下载的界面
    下载界面
    在centos中安装使用nginx.tar.gz的,可以直接点击下载到本地,然后传输到我们的服务器上
    当然最简单的方法是右键复制下载地址,然后到服务器上通过wget/curl等方式下载
// O大写,不用O只是打印内容不会下载
curl -O http://nginx.org/download/nginx-1.24.0.tar.gz
// wget不用加任何参数直接下载即可
wget http://nginx.org/download/nginx-1.24.0.tar.gz
// 解压到指定目录下
tar -xvzf nginx-1.24.0.tar.gz  -C /usr/local/
// 解压到指定目录下
tar -xvzf nginx-1.24.0.tar.gz  -C /usr/local/
//对目录下的文件进行预编译
/usr/local/nginx-1.24.0/configure --prefix=/usr/local/nginx --group=nginx --user=nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/tmp/nginx/client_body --http-proxy-temp-path=/tmp/nginx/proxy --http-fastcgi-temp-path=/tmp/nginx/fastcgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre --with-http_realip_module --with-stream
//移动到目录下然后使用make编译
cd /usr/local/nginx-1.21.6/
//编译安装
make && make install
常用参数名称表示含义
prefix指向安装目录
conf-path指定配置文件目录
http-log-path指定访问日志目录
error-log-path指定错误日志目录
pid-path指定pid文件目录
with-ipv6启用ipv6支持
不常见参数
# 模块参数具体功能
--with-cc-opt='-g -O2 -fPIE -fstack-protector    //设置额外的参数将被添加到CFLAGS变量。(FreeBSD或者ubuntu使用)
--param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' 
--with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' 

--prefix=/usr/local/nginx                        //指向安装目录
--conf-path=/etc/nginx/nginx.conf                //指定配置文件
--http-log-path=/var/log/nginx/access.log        //指定访问日志
--error-log-path=/var/log/nginx/error.log        //指定错误日志
--lock-path=/var/lock/nginx.lock                 //指定lock文件
--pid-path=/run/nginx.pid                        //指定pid文件

--http-client-body-temp-path=/var/lib/nginx/body    //设定http客户端请求临时文件路径
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi     //设定http fastcgi临时文件路径
--http-proxy-temp-path=/var/lib/nginx/proxy         //设定http代理临时文件路径
--http-scgi-temp-path=/var/lib/nginx/scgi           //设定http scgi临时文件路径
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi         //设定http uwsgi临时文件路径

--with-debug                                        //启用debug日志
--with-pcre-jit                                     //编译PCRE包含“just-in-time compilation”
--with-ipv6                                         //启用ipv6支持
--with-http_ssl_module                              //启用ssl支持
--with-http_stub_status_module                      //获取nginx自上次启动以来的状态
--with-http_realip_module                 //允许从请求标头更改客户端的IP地址值,默认为关
--with-http_auth_request_module           //实现基于一个子请求的结果的客户端授权。如果该子请求返回的2xx响应代码,所述接入是允许的。如果它返回401或403中,访问被拒绝与相应的错误代码。由子请求返回的任何其他响应代码被认为是一个错误。
--with-http_addition_module               //作为一个输出过滤器,支持不完全缓冲,分部分响应请求
--with-http_dav_module                    //增加PUT,DELETE,MKCOL:创建集合,COPY和MOVE方法 默认关闭,需编译开启
--with-http_geoip_module                  //使用预编译的MaxMind数据库解析客户端IP地址,得到变量值
--with-http_gunzip_module                 //它为不支持“gzip”编码方法的客户端解压具有“Content-Encoding: gzip”头的响应。
--with-http_gzip_static_module            //在线实时压缩输出数据流
--with-http_image_filter_module           //传输JPEG/GIF/PNG 图片的一个过滤器)(默认为不启用。gd库要用到)
--with-http_spdy_module                   //SPDY可以缩短网页的加载时间
--with-http_sub_module                    //允许用一些其他文本替换nginx响应中的一些文本
--with-http_xslt_module                   //过滤转换XML请求
--with-mail                               //启用POP3/IMAP4/SMTP代理模块支持
--with-mail_ssl_module                    //启用ngx_mail_ssl_module支持启用外部模块支持
  1. 配置文件修改
// 修改编译安装的nginx配置文件
vim /etc/nginx/nginx.conf

配置文件中一般有main块/event块/http块/server块/location块

配置参数代表含义
worker_processes设置nginx启动进程的数量,一般设置成与逻辑cpu数量相同
error_log指定错误日志目录
worker_rlimit_nofile设置一个nginx进程能打开的最大文件数-一般为1024倍数

在http块中是常用的server配置和location配置
在这里插入图片描述
编译安装的启动或者停止都需要写绝对路径去操作,对于编译安装的任何软件都可以通过两种方式去引用,详见----TODO #pass

// 检查nginx的配置文件书写
/usr/local/nginx/sbin/nginx -t
// 创建预编译时指定的nginx目录
[root@localhost ~]# mkdir -p /tmp/nginx
[root@localhost ~]# mkdir /usr/local/nginx/logs
// 启动nginx服务
/usr/local/nginx/sbin/nginx

nginx 的一些参数

参数值代表含义
nginx -t查看配置文件是否有误
nginx -s reload修改配置文件后重新加载使其生效
nginx -s stop停止nginx
nginx -c 配置文件以指定的配置文件启动nginx
nginx -t -c 配置文件测试指定的配置文件是否有误

nginx日志文件内容
nginx日志格式

使用脚本安装Nginx

#/usr/bin/bash
bianyi(){
    echo " 即将为您进行编译安装nginx 中途不要操作"
    yum -y install gcc gcc-c++
    yum install -y pcre pcre-devel
    yum install -y openssl openssl-devel
    yum install -y zlib zlib-devel
    useradd nginx
    echo "编译环境准备工作完成,开始进行下载安装"
    sleep 3
    curl -O http://nginx.org/download/nginx-1.24.0.tar.gz
    tar -xvzf nginx-1.24.0.tar.gz  -C /usr/local/
    cd /usr/local/nginx-1.24.0/
    ./configure --prefix=/usr/local/nginx --group=nginx --user=nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/tmp/nginx/client_body --http-proxy-temp-path=/tmp/nginx/proxy --http-fastcgi-temp-path=/tmp/nginx/fastcgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre --with-http_realip_module --with-stream
    make && make install
    mkdir -p /tmp/nginx
    mkdir /usr/local/nginx/logs
    /usr/local/nginx/sbin/nginx
    ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
    if [ $? -ne 0 ]
    then
    echo "安装失败,建议查看错误日志"
    else
    echo "恭喜您安装成功"
    ps aux|grep nginx
    fi
}
yumanzhuang(){
	yum install yum-utils -y
	cat >>/etc/yum.repos.d/nginx.repo<<EOF
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/
gpgcheck=0
enabled=1
EOF
yum install nginx -y
if [ $? -eq 0 ]
then 
echo "安装成功~"
else
echo "不可预料的错误发生了~"
continue
fi
nginx -v
}

xznginx () {
rpm -qa |grep nginx  &>/dev/null
if [ $? -ne 0 ]
then
ls /usr/local/nginx &>/dev/null
	if [ $? -eq 0 ]
	then 
	while :
	do
		echo "系统自动检测删除,若有与nginx同名文件,建议妥善保存,以免造成数据丢失"
	        read -p "检测到您为编译安装,此操作将会删除所有nginx数据及编译文件,您是否需要保存配置文件?保存y/删除n" peiz
		case $peiz in
		y)
		mv /etc/nginx/nginx.conf /baocunbeifen001.back &>/dev/null
			if [ $? -ne 0  ]
			then 
			echo "未发现配置文件,无法为您保存"
			sleep 5
			else
			echo "备份中,请稍等"
			fi
		find / -name "*nginx*" |xargs -i rm -rf {} &>/dev/null
		mv /baocunbeifen001.back /etc/nginx.conf.back  &>/dev/null
		echo "若参与正常备份,备份文件位于:/etc/nginx.conf.back"
		ls /etc | grep '*nginx*'
		break
		;;
		n)
		find / -name "*nginx*" |xargs -i rm -rf {} &>/dev/null
		echo "已为您删除编译安装的nginx服务" 
		break
		;;
		*)
		echo "输入有误,请重新输入"
		continue
		;;

	esac
	done
	fi
else
echo "检测到您是yum安装nginx,即将为您卸载"
while :
do
	read -p "卸载nginx的同时是否需要为您保留依赖包?保留y/删除n" ylnginx
	case $ylnginx in
	y)
	yum remove nginx
	echo "已为您单独卸载nginx"
	break
	;;
	n)
	yum autoremove nginx
	echo "nginx以及其依赖已为您全部移除"
	break
	;;
	*)
	echo "您的输入有误,请重新输入"
	continue
	;;
	esac

done
fi

}
while :
do
echo "------------------------"
echo "请输入您想执行的操作"
echo "1.使用编译安装nginx服务"
echo "2.使用yum安装nginx服务"
echo "3.卸载本机nginx服务"
echo "4.退出本程序"
echo "------------------------"
read -p "请在此输入您的操作" num
case $num in
    1)
    bianyi
    ;;
    2)
	yumanzhuang
    ;;
    3)
	xznginx	

    ;;
    4)
	echo "感谢使用~see god bye"
	break 
    ;;
    *)
	echo "请输入正确的指令"
    ;;
esac
done






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值