nginx编译安装及配置文件的修改

目录

编译安装nginx

root和alias

升级

nginx访问状态统计配置

基于授权的的访问控制

基于客户端的访问控制


编译安装nginx

1.关闭防火墙,安全机制,去官网下载nginx压缩包,并进行解压

systemctl stop firewalld  #关闭防火墙
systemctl disable --now firewalld  #开机不自启并立即关闭防火墙
setenforce 0   #关闭安全机制

2.安装依赖包,由于nginx的配置及运行需要pcre、zlib、openssl等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件。

yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

3.创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)

useradd -M -s /sbin/nologin nginx  #建立nginx程序用户

4.编译安装Nginx

cd nginx-1.12.0/                                    #进入到解压完的nginx包下
./configure \                                       #指定编译安装的路径
--prefix=/usr/local/nginx \							#指定nginx的安装路径
--user=nginx \										#指定用户名
--group=nginx \										#指定组名
--with-http_stub_status_module						#启用 http_stub_status_module 模块以支持 
                                                     状态统计
make && make install                                #转为二进制文件并安装

5.在$PATH路径下创建nginx的软连接

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/		#让系统识别nginx的操作命令

6.添加nginx系统服务

方法一

vim /etc/init.d/nginx


#!/bin/bash
#chkconfig: - 99 20
#description:Nginx Service Control Script
COM="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
  $COM
;;

stop)
  kill -s QUIT $(cat $PID)
;;

restart)
  $0 stop
  $0 start
;;

reload)
  kill -s HUP $(cat $PID)
;;

*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1

esac
exit 0


chmod +x /etc/init.d/nginx
chkconfig --add nginx   
systemctl stop nginx
systemctl start nginx

方法二

vim /lib/systemd/system/nginx.service


[Unit]                                      #服务的说明
Description=nginx                           #描述服务
After=network.target                        #依赖,当依赖的服务启动之后再启动自定义的服务
[Service]                                   #服务运行参数的设置
Type=forking                                #是后台运行的形式
PIDFile=/usr/local/nginx/logs/nginx.pid     
ExecStart=/usr/local/nginx/sbin/nginx       #为服务的具体运行命令
ExecReload=/bin/kill -s HUP $MAINPID        #为重启命令
ExecStop=/bin/kill -s QUIT $MAINPID         #为停止命令
PrivateTmp=true                             #表示给服务分配独立的临时空间
[Install]                                   #服务安装的相关设置,可设置为多用户
WantedBy=multi-user.target


chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

root和alias

修改nginx配置文件

添加root和alias俩段

重新加载nginx服务

分别在/var/www/kk和/var/web下创建一个文件用来检测

去网页上搜索地址看是否成功

升级

原始版本

先去官网下载最新版本压缩包,并解压,然后备份老文件,并进行替换老文件

cd nginx-1.xx.xx
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
--with-http_ssl_module

make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old
cp objs/nginx /usr/local/nginx/sbin/nginx
make upgrade

现在版本

nginx访问状态统计配置

1.先使用命令/usr/local/nginx/sbin/nginx -V 查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块,若没有模块,就去到解压的安装包里重新编译安装这个模块

./configure --prefix=/usr/local/nginx --with-http_stub_status_module
make
make install

2.修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置

cd /usr/local/nginx/conf
cp nginx.conf nginx.conf.bak


vim /usr/local/nginx/conf/nginx.conf
......
http {
......
	server {
		listen 80;
		server_name www.wwy.com;
		charset utf-8;
		location / {
			root html;
			index index.html index.php;
		}                                   #添加 stub_status 配置
		location /status { 					#访问位置为/status
			stub_status on; 				#打开状态统计功能
			access_log off; 				#关闭此位置的日志记录
		}
	}
}

3.重启服务,访问测试
 

systemctl restart nginx
systemctl stop firewalld
setenforce 0

4.测试是否成功

浏览器访问 http://ip地址/status    例:http://192.168.75.30/status

Active connections:表示当前的活动连接数,即当前与 Nginx 服务器建立的连接数。
server accepts handled requests :表示已经处理的连接信息
三个数字依次表示服务器已接收的连接数;服务器成功处理的连接数;服务器累计处理的总请求数(在保持连接模式下,请求数量可能会大于连接数量)
Reading:表示当前正在从客户端读取数据的连接数。
Writing:表示当前正在向客户端写入数据的连接数。
Waiting:表示当前空闲并等待请求的连接数。

注:在虚拟机的同网段主机里也可以看

基于授权的的访问控制

1.生成用户密码认证文件

yum install -y httpd-tools
htpasswd -c /usr/local/nginx/passwd.db 用户名
chown nginx /usr/local/nginx/passwd.db
chmod 400 /usr/local/nginx/passwd.db

2.修改主配置文件相对应目录,添加认证配置项

vim /usr/local/nginx/conf/nginx.conf
......
	server {
		location / {
			......
			auth_basic "secret";				#设置密码提示框文字信息
			auth_basic_user_file /usr/local/nginx/passwd.db;
		}
	}

3.重启服务,访问测试

nginx -t   #查看语法是否有误
systemctl restart nginx

基于客户端的访问控制

访问控制规则如下:
deny IP/IP 段:拒绝某个 IP 或 IP 段的客户端访问。
allow IP/IP 段:允许某个 IP 或 IP 段的客户端访问。
规则从上往下执行,如匹配则停止,不再往下匹配。

进入配置文件修改

vim /usr/local/nginx/conf/nginx.conf


......
	server {
		location / {
			......
			##添加控制规则##
			allow 192.168.75.20; 					#允许访问的客户端 IP
			deny all;								#拒绝其它IP客户端访问
		}
	}


systemctl restart nginx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值