Nginx常用的基础配置
程序员文章站
2022-03-10 23:28:38
...
配置语法
-
nginx的客户端状态 http_stub_status
Syntax: stub_status; Default: Context: server,location #示例: location /mystatus { stub_status; }
-
目录中选择一个随机页面展示 http_random_index
Syntax: random_index on|off; Default: random_index off; Context: location
-
连接限制
Syntax: limit_conn_zone key zone=name:size; Default: Context: http Syntax: limit_conn zone number; Default: Context: http,server,location
-
请求限制
Syntax: limit_req_zone key zone=name:size rate=rate; Default: Context: http Syntax: limit_req zone=name [burst=number] [nodelay]; Default: Context: http,server,location
示例
#连接限制 limit_conn_zone $binary_remote_addr zone=conn_zone:1m; limit_conn conn_zone 1; #同一时刻,只允许一个ip的连接请求过来 #请求限制 linit_req_zone $binary_remote_addr zone=req:1m rate=1r/s; limit_req zone=req_zone; #同一个IP,1s只允许发起1个请求 limit_req zone=req_zone burst=3 nodelay; #3个延时处理,其余的该咋样咋样
-
nginx的访问控制(通过ip)http_access
Syntax: allow(deny) address|CIDR|unix|all; Default: Context: http,server,location,limit except
局限性:只能通过remote_addr控制信任,如果使用代理,起不到对原机器的控制。
解决局限性:
- 采用别的http头信息访问控制,如HTTP_X_FORWARD_FOR(有原机器以及途中机器的ip)
- 结合geo模块作
- 通过http自定义变量传递
-
nginx访问控制:auth_basic_module (需要输入用户名密码访问)
Syntax: auth_basic string|off; Default: auth_basic off; Context: http,server,location,limit except Syntax: auth_basic_user_file file; Default: Context: http,server,location,limit except
示例
#安装密码加密插件htpasswd # yum install httpd-tools -y # htpasswd -C ./auth_conf jeson #jeson为用户名 auth_basic "Auth access test! input your password!"; auth_basic_user_file /etc/nginx/auth_conf;
局限性
- 用户信息依赖文件方式
- 操作管理机械,效率低下