Nginx 的配置和访问控制

一、Nginx简介

  • 一款高性能、轻量级Web服务软件,稳定性高,系统资源消耗低,对HTTP并发连接的处理能力高

二、Nginx配置

需要准备的安装包:

可以先通过远程挂载的方式将压缩包从Windows系统,挂载到linux系统,之后再进行压缩等操作。

百度云盘链接:https://pan.baidu.com/s/1Ly31-Ph3CFf470jbWSIv0g

2.1、安装依赖包和解压

在一台IP地址为 192.168.220.134 的 centos7系统中
1、安装依赖包

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

2、创建名为nginx的用户,且不允许登录系统

useradd -M -s /sbin/nologin nginx

3、挂载,并解压安装包到指定/opt/中

mount.cifs //192.168.10.106/share /mnt   #192.168.10.106是我的宿主机IP地址
tar zxvf nginx-1.12.2.tar.gz -C /opt/ 

2.2、配置编译安装

1、编译配置

cd /opt/nginx-1.12.2/

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module   
//安装统计模块

2、make编译

make && make install

3、关闭防火墙,优化路径

systemctl stop firewalld
setenforce 0

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

4、检查是否有误

[root@localhost nginx-1.12.2]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

5、安装 elinks 安装包,用elinks测试

yum -y install elinks
elinks http://localhost

在这里插入图片描述
在这里插入图片描述

nginx	              //启动
killall -1 nginx      //重启
killall -3 nginx      //停止

2.3、制作管理脚本

1、制作管理脚本,来控制 Nginx 的开启关闭。

vim /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
   start)
   $PROG
   ;;
   stop)
   kill -s QUIT $(cat $PIDF)
   ;;
   restart)
   $0 stop
   $0 start
   ;;
   reload)
   kill -s HUP $(cat $PIDF)
   ;;
   *)
       echo "Usage: $0 {start|stop|restart|reload}"
       exit 1
esac
exit 0

2、添加执行权限,将脚本文件添加到服务列表中

cd /etc/init.d
chmod +x nginx
chkconfig --add nginx
chkconfig --level 35 nginx on  //开机自启
service nginx start
//启动不行,就先service nginx stop,再service nginx start

[root@localhost init.d]# netstat -natp | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN    47086/nginx: master 

2.4、nginx.conf文件的修改

  • 在 Nginx 服务器的主配置文件 /usr/local/nginx/conf/nginx.conf 中,包括全局配置,I/O 事件配置,HTTP 配置 中三大块内容。

1、全局配置

#user  nobody;                 //运行用户
worker_processes  1;           //工作运行数量 
#error_log  logs/error.log;    //错误日志文件的位置
#pid        logs/nginx.pid;    //PID文件的位置

2、I/O 事件配置

events {
       worker_connections  1024;      //每进程处理1024个连接
}

3、HTTP 配置

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;   //访问日志位置

    sendfile        on;                  //支持文件发送(下载)
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;              //连接保持超时
    #gzip  on;

    server {   //web服务器的监听配置
        listen       80;               //监听端口
        server_name  localhost;        //域名

        #charset utf-8;         //网页的默认字符集  

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
        root   html;
        }
  • 访问状态统计
    nginx内置了 HTTP_STUB_STATUS 状态统计模块,用来反馈当前的 Web 访问情况,配置编译参数时可添加 --with-http_stub_status_module 来启用此模块支持。

可使用命令: /usr/local/nginx/sbin/nginx -V 来查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块。
要使用 Nginx 的状态统计功能,除了启用内建模块以外,还需要修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置代码。

在nginx.conf 配置文件 只修改 server{}区域:

修改三处
server {
        listen       80;               //监听地址
        server_name  www.test.com;      //第一处:修改监听域名

        charset utf-8;   //第二处:修改字符集

        #access_log  logs/host.access.log;

        location / {
            root   html;
            index  index.html index.htm;
        }
        //增添一段location /status
        location /status {
            stub_status on;
            access_log off;
        }  
}

修改好配置文件之后,重启一下服务即可。

service nginx stop
service nginx start

2.5、配置DNS域名解析

1、安装

yum -y install bind

2、修改

vim /etc/named.conf 

在这里插入图片描述

vim /etc/named.rfc1912.zones 
//复制修改
zone "test.com" IN {
        type master;
        file "test.com.zone";
        allow-update { none; };
};

在这里插入图片描述
在这里插入图片描述
启动named服务

systemctl restart named

在一台 win10系统的客户端中
修改DNS服务器的地址
在这里插入图片描述
在这里插入图片描述
在win10的浏览器中输入 www.test.com/status
在这里插入图片描述
在这里插入图片描述

三、访问控制

3.1、基于授权的访问控制

  • Nginx 和Apache 一样,可以实现基于用于授权的访问控制,当客户端想访问网站时,会要求输入用户名和密码才可以正常访问,配置步骤和 Apache 基本一致。

基于授权的访问控制配置思路:

  • 生成用户密码认证文件
  • 修改主配置文件对相应目录,添加认证配置项
  • 重启服务,访问测试

1、修改主配置文件 nginx.conf ,添加相应认证配置项。

auth_basic "secret";
auth_basic_user_file /usr/local/nginx/passwd.db;

在这里插入图片描述
2、安装tools软件包

yum install httpd-tools -y 

htpasswd 命令生成用户认证文件

htpasswd -c /usr/local/nginx/passwd.db test01

在这里插入图片描述
3、修改配置文件,就必须重启服务

service nginx restart

4、这时,用win10的浏览器访问网址www.test.com,就会要求输入用户名 test01 和密码abc123
在这里插入图片描述

3.2、基于客户端的访问控制

可以通过客户端的 IP地址,决定是否允许对页面访问,规则如下:

  • deny ip/ip段 :拒绝某个ip或IP段访问;
  • allow ip/ip段 :允许某个ip或IP段访问;
  • 规则:从上往下,如匹配则停止,不再往下匹配

我的win10主机 IP地址为 192.168.220.132
配置过程:
1、修改主配置文件 nginx.conf ,添加相应认证配置项。

deny 192.168.220.132;
allow all;
//不允许192.168.220.132 这个ip的客户端访问

在这里插入图片描述
2、修改配置文件,就必须重启服务

service nginx restart

3、在win10系统中验证:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值