33.nginx常用模块,配置文件说明

1.索引模块,目录索引,索引页

ngx_http_autoindex_module 模块处理以斜杠字符(’/”)结尾的请求,并生成目录列表。 当 ngx_htp_index_module 模块找不到索引文件时,通常会将请求传递给 ngx_http_autoindex_module 模块.。

例如:

Syntax: autoindex on | off; ##可以on或者off
Default: autoindex off; ##默认off关闭
Context: http, server, location ##可以包含在哪些区块,作用域

配置:

说明:
    可以用来搭建自己的软件仓库,放一下文件,在线视频等
    模块找不到索引文件时,通常会将请求传递给 ngx_http_autoindex_module 模块
    所以,若果想要索引,/www/就不要有index.html文件
    直接在location区块添加autoindex on开启即可

配置:
        location / {

        root /www/;
        index index.html
        autoindex on;       ##开启索引
        charset   utf-8,gbk;  ##字符集,防止中文乱码
        autoindex_localtime on;  ##显示索引目录修改时间时间
        autoindex_exact_size off;  ##显示文件大小xxmb

        }       

创建索引目录:
        mkdir -p /www/{a..z}


生效:
        systemctl reload nginx   ##该配置文件reload重载
        systemctl restart nginx  ##新增加配置用重启

注意:优先生效最里面区块的配置,例如:定义日志文件和配置等

注意:如果中文乱码,配置 charset utf-8,gbk; 配置在那个区块作用域就在那个区块

注意:配置后面有空格或者tab空格也会报错

优化:

charset   utf-8,gbk;  ##字符集,防止中文乱码
autoindex_localtime on;  ##显示索引目录修改时间时间
autoindex_exact_size off;  ##显示文件大小xxmb

2.配置下载限速模块

  • limit_ rate_after 50m; ##50m不限速,然后进行限速
  • limit_rate 1m; ##限制每秒1m的速度下载

3.用户登录认证模块

*用户名密码认证:访问提示字符串*

Syntax: auth_basic string | off;

Default: auth_basic off;

Context: http, server, location, limit_except

1.安装htpasswd命令:
    yum -y install httpd-tools 

2.创建密码文件:
    htpasswd -b -c /etc/nginx/www_passwd.conf  admin  123456     ##生成用户和密码文件
    #  -b免交互账号密码 admin  123456 
    #  -c创建文件

3.配置文件:

    auth_basic "欢迎来到我的仓库";   ##提示符
    auth_basic_user_file www_passwd.conf;    ##用户名和密码文件位置

4.状态监控

配置:

location /nginx_status {

stub_status;

}

##配置完后,重启服务,访问www.haoshuaicong.icu/nginx_status

Active connections: 2
server accepts handled requests
8 8 26
Reading: 0 Writing: 1 Waiting: 1

  • “Active connections: 2”:当前有 2 个tcp活动连接。
  • “server accepts handled requests 8 8 26”:服务器接收8次、已响应处理的连接请求 8 次,客户端总请求26 次。
  • “Reading: 0 Writing: 1 Waiting: 1”:等待0个读头,1 个连接在写数据,1 个连接处于等待状态。

5.nginx基于ip的访问控制

配置:

location /nginx_status {

stub_status;
allow  10.0.0.203;
deny all;

}
允许10.0.0.203连接,拒绝所有其他ip访问


allow  10.0.0.0/24;
deny all;
允许10.0.0.0网段的主机连接,拒绝所有其他ip访问

6.连接请求限制

1.连接数限制

  • 必须配置到http区块才可使用
http区块配置:
        # 模块名称       访问者ip地址  给这个ip开一个空间,限流10m
        limit_conn_zone $remote_addr zone=conn_zone:10m;
        # 水桶空间,10M能放100万个ip地址


server区块配置:
        limit_conn conn_zone 1;
        # 限制空间里的所有IP,同一时间每秒只有1个TCP连接
        # 调用上面的limit_conn_zone配置

测试:
        ab -n 20000000 -c 200  http://8.146.207.26/
        # ab可以压力测试,请求20000次连接200次

2.请求数的限制

  • 一个tcp的请求数限制
  • 必须配置到http区块才可使用
http区块配置:        
        limit_req_zone $binary_remote_addr zone=req_zone:10m rate=50r/s;
        #                                                   每秒最多50个请求
        # 调用上面的limit_conn_zone配置


server区块配置:
        limit_req  zone=req_zone  burst=20  nodelay;
        #   延时处理10个请求,剩下的全部拒绝503
        ###  具体限制几个请求,看当前网页页面有多少请求,乘以2

        limit_req_status 478;
        # 把返回状态码改成478,因为500之后都是数据库的问题
        limit_req_status 478  /err.html; #返回/err.html这个内容,不是绝对路径

7.location匹配规则

  • 使用 Nginx Location 可以控制访问网站的路径,但一个server 可以有多个location 配置,多个 location 的优先级该如何区
匹配符匹配规则优先级
=精确匹配1
^~以某个字符串开头2
~区分大小写的正则匹配3
~*不区分大小写的正则匹配4
/通用匹配,任何请求都会匹配到5
  • 如果用户访问www.oldboy.com/img/123.jpg,5个location区块匹配规则都成立,则返回输出匹配优先级最高的location
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇