目录

🥩写在前面

🥩搭建域名虚拟主机

🥩nginx索引

🥩状态索引

🥩访问控制

🥗基于ip限制

🥗基于用户限制


     🦐博客主页:大虾好吃吗的博客

     🦐专栏地址:专栏地址


写在前面

        Nginx是一个开源的高性能HTTP和反向代理服务器,具有模块化的架构,可以通过添加模块来扩展其功能。Nginx模块是为了在Nginx服务器上增加特定功能而开发的插件。这些模块可以根据需求被编译到Nginx中,以提供各种功能和扩展。

Nginx模块可以实现各种功能,包括但不限于:

1. HTTP代理和反向代理:通过模块可以将请求代理到不同的后端服务器,用于负载均衡、缓存和请求转发等。

2. SSL/TLS支持:Nginx模块可以添加对SSL/TLS的支持,以实现HTTPS协议的安全通信。

3. 缓存和内容加速:通过缓存模块,Nginx可以对静态内容进行缓存,提高访问速度和性能。

4. 负载均衡:Nginx的负载均衡模块可以在多个后端服务器之间分发请求,提高系统的可用性和容错性。

5. 内容压缩:Nginx支持通过模块对输出内容进行gzip压缩,减少传输数据的大小,提高网络传输效率。

6. 访问控制和安全性:Nginx模块可以实现基于IP地址、用户身份验证和访问控制列表等的访问控制和安全功能。

7. 日志记录和统计:Nginx可以通过模块将访问日志记录到文件或者其他存储系统中,并生成统计报告。

配置nginx官方yum源

http://nginx.org/en/linux_packages.html#RHEL-CentOS

vim /etc/yum.repos.d/nginx.repo

[nginx-stable]

name=nginx stable repo

baseurl=http://nginx.org/packages/centos/7/$basearch/

gpgcheck=0

enabled=1

搭建域名虚拟主机

        安装nginx并通过修改配置文件来指定网站存放目录为/data。

[root@node1 ~]# yum -y install nginx
[root@node1 ~]# mkdir /data
[root@node1 ~]# vim /etc/nginx/conf.d/www.conf
server {
        listen 80;
        server_name www.aaa.com;
        location / {
        root /data;
        index index.html index.htm;
        }
}
[root@node1 ~]# systemctl start nginx
[root@node1 ~]# cd /data/
[root@node1 data]# echo "192.168.1.10" > index.html

        此时可以看到网页存放在/data下,访问浏览器看到内容即可。

nginx索引

        在/data网站下,创建download下载目录,启用索引显示。

[root@node1 ~]# mkdir -p /data/download
[root@node1 ~]# cp -rp /media/nginx-rpm/* /data/download/ //复制网页下载内容到download目录下,文件或安装包都可。
[root@node1 ~]# vim /etc/nginx/conf.d/data.conf //编辑配置文件
server {
        location /download {
        root /data;
        autoindex on; //启用索引显示
        charset utf-8,gbk; //字符编码为中文
        autoindex_exact_size on; //显示文件大小
        autoindex_localtime on; //显示文件创建时间
        }
}
[root@node1 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@node1 ~]# systemctl restart nginx
[root@node1 ~]# chmod -R 707 /data/download/

状态索引

        针对网站启用状态化追踪。(在server字段下添加status模块)

[root@node1 ~]# vim /etc/nginx/conf.d/data.conf 
server {
//省略部分内容
        location /status {
        stub_status; //启用状态化追踪
        access_log off; //关闭status的日志记录
        }
}
[root@node1 ~]# systemctl restart nginx

        访问http://192.168.1.10/status,可以看到下图所示内容。

Active connections: 2 当前活跃的连接数

server  accepts 2  当前的总tcp连接数

handled 2 成功的连接数

requests 4 总HTTP请求数

        下面可以通过客户端使用压力测试工具对nginx服务器进行压测。

[root@client ~]# yum -y install httpd-tools
[root@client ~]# ab -c 1000 -n 1000 http://192.168.1.10/status

在次刷新后可以看到相关数据

访问控制

基于ip限制

        启用access模块,仅允许对内部网段或vpn访问status。在status模块中添加两行内容,测试时可以仅允许一个主机访问或划分子网。

[root@node1 ~]# vim /etc/nginx/conf.d/data.conf
//省略部分内容
location /status {
         stub_status;
         access_log off;
         allow 192.168.1.100; //仅允许1.100主机访问
         deny all; //拒绝所有主机访问
}
[root@node1 ~]# systemctl restart nginx

        测试使用1.100主机访问刷新几次显示正常,再用1.4客户端访问为Forbidden说明配置成功。

  

基于用户限制

        启用auth模块,设置访问/status用户需要密码验证。

[root@node1 ~]# yum -y install httpd-tools
[root@node1 ~]# htpasswd -b -c /etc/nginx/.auth_conf lisi 123 //用户lisi密码123
Adding password for user lisi
[root@node1 ~]# vim /etc/nginx/conf.d/data.conf
//省略部分内容
location /status {
stub_status;
access_log off;
allow 192.168.1.100;
deny all;
auth_basic "input your passwd:"; //用户登录描述信息
auth_basic_user_file /etc/nginx/.auth_conf; //用户验证文件路径
}
[root@node1 ~]# systemctl restart nginx

        根据下图所示输入用户密码后才能查看status内容,上面因为启用了IP限制,所以只能使用1.100主机访问。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐