学习nginx从入门到实践(四) 基础知识之nginx基本配置语法
nginx基本配置语法
1.http相关
展示每次请求的请求头: curl -v http://www.baidu.com
2.nginx日志类型
- error.log、 access.log
- log_format
*格式*
syntax: log_format name [escape=default | json] string...;
default: log_format combined "...";
context:http
3.nginx变量
nginx配置的内容:
worker_processes 1;
pid /var/run/nginx.pid;
worker_connections 1024;
}
include /etc/nginx/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 /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
- http请求变量:arg_PARAMETER,http_header,sent_http_header
- 内置变量:nginx内置的
- 自定义变量: 自己定义
4.nginx模块
- nginx官方模块
- 第三方模块
nginx开启的模块:
5.安装编译模块
| 编译选项 | 作用 |
|---|---|
| --with-http_stub_status_module | nginx的客户端状态 |
| --with-http_random_index_module | 目录中选择一个随机主页 |
| --with-http_sub_module | http内容替换 |
| --limit_conn_module | 连接频率限制 |
| --limit_req_module | 请求频率限制 |
| http_access_module | 基于ip的访问控制 |
| http_auth_basic_module | 基于用户的信任登录 |
5.1 http_stub_status_module 配置(nginx的客户端状态)
配置语法:
syntax: stub_status;
default:-
context:server, location
在default.conf中添加:
# my config
location /mystatus {
stub_status;
}
检查和重新启动配置:
nginx -tc /etc/nginx/nginx.conf
重启服务:
nginx -s reload -c /etc/nginx/nginx.conf
5.2 http_random_index_module(目录中选择一个随机主页)
default:random_index off;
context:location
root /usr/share/nginx/html;
index index.html index.htm;
}
root /usr/share/nginx/html;
random_index on;
#index index.html index.htm;
}
5.3 http_sub_module (http内容替换)
配置语法:
syntax: sub_filter string replacement;
default:-
context:http,server,location
syntax: sub_filter_last_modified on | off (重要用户缓存)
default: sub_filter_last_modified off;
context: http,server,location
syntax: sub_filter_once on | off
default: sub_filter_once on;
context: http,server,location
5.4 limit_conn_module(连接频率限制)
配置语法:syntax: limit_conn_zone key zone=name:size;
default:-
context:http syntax:limit_conn zone number;
default:-
context:http, server, location
5.5 limit_req_module (请求频率限制)
配置语法:
syntax: limit_req_zone key zone=name:size rate=rate;
default: -
context: http
limit_req_zone $binary_remote_addr zone=req_zone:1m rate=1r/s;


5.6 http_access_module(基于ip的访问控制)
配置语法:
syntax: allow address | CIDR | unix: | all
default:-
context:http,server,location,limit_except
syntax:deny address | CIDR | unix: | all
default:-
context:http, server, location ,limit_except
测试 配置如下:
location ~ ^/admin.html {
root /opt/app/code;
deny all;
index index.html index.htm;
}
5.7
http_auth_basic_module(基于用户的信任登录)
配置语法:
syntax: auth_basic string | off;
default: -
context: http,server,location,limit_except
syntax: auth_basic_user_file file;
default: -
context: http, server, location ,limit_except
生成password文件:
htpasswd -c ./auth_conf feixia
修改conf文件:
root /opt/app/code;
auth_basic "please input you user name and passwd";
auth_basic_user_file /etc/nginx/auth_conf;
index index.html index.htm;
}
局限性
- 用户信息依赖文件方式
- 操作管理机械、效率低下
解决方案
- nginx 结合LUA实现高效验证
- nginx和LDAP打通,利用nginx-auth-ldap模块
学习nginx从入门到实践(四) 基础知识之nginx基本配置语法的更多相关文章
- 《Python编程:从入门到实践》基础知识部分学习笔记整理
简介 此笔记为<Python编程:从入门到实践>中前 11 章的基础知识部分的学习笔记,不包含后面的项目部分. 书籍评价 从系统学习 Python 的角度,不推荐此书,个人更推荐使用< ...
- Nginx从入门到实践(四)
Nginx常见问题和排错经验,实践应用场景中的方法处理Nginx安全,常见的应用层安全隐患,复杂访问控制,Nignx的sql防注入安全策略,Nginx的整体配置,搭建合理Nginx中间件架构配置步骤. ...
- 使用Code First建模自引用关系笔记 asp.net core上使用redis探索(1) asp.net mvc控制器激活全分析 语言入门必学的基础知识你还记得么? 反射
使用Code First建模自引用关系笔记 原文链接 一.Has方法: A.HasRequired(a => a.B); HasOptional:前者包含后者一个实例或者为null HasR ...
- Ant学习-001-ant 基础知识及windows环境配置
一.Ant 概要基础知识 Apache Ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发,用以构建应用,或结合其他开源测试工具例如 git.T ...
- 学习nginx从入门到实践(五) 场景实践之静态资源web服务
一.静态资源web服务 1.1 静态资源 静态资源定义:非服务器动态生成的文件. 1.2 静态资源服务场景-CDN 1.3 文件读取配置 1.3.1 sendfile 配置语法: syntax: se ...
- Nginx从入门到实践(一)
结合实践.收集各种场景.常见问题,讲解Nginx中最实用的Webserver场景,提供一套整体的搭建配置方式 Nginx中间件,不局限于业务逻辑,有效独立于后台开发框架(不论后端是Java开发.PHP ...
- Nginx从入门到实践(二)
静态资源web服务 静态资源类型 CDN CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工 ...
- Nginx详解四:Nginx基础篇之目录和配置语法
一.安装目录 命令:rpm -ql nginx 二.编译参数 命令:nginx -V 三.Nginx基本配置语法 修改主配置文件 当Nginx读配置文件读到include /etc/nginx/con ...
- APP测试入门篇之APP基础知识(001)
前言 最近两月比较多的事情混杂在一起,静不下心来写点东西,月初想发表一遍接口测试的总结,或者APP测试相关的内容,一晃就月底了,总结提炼一时半会也整不完.放几个早年总结内部培训PPT出来 ...
随机推荐
- day02:三元运算、布林非、列表等(20170214)
#1:三元运算(满足条件就返回值,不简洁的代码):a= 1b= 3c= 5if a > b : d = aelse: d = cprint (d) #2:三元运算(满足条件就返回值,简洁的代码) ...
- Mysql快速入门(看完这篇能够满足80%的日常开发)
这是一篇mysql的学习笔记,整理结合了网上搜索的教程以及自己看的视频教程,看完这篇能够满足80%的日常开发了. 菜鸟教程:https://www.runoob.com/mysql/mysql-tut ...
- 模板:分页JSP(结合Servlet)
DAO类(后续无需改变) package dao; import java.sql.Connection; import java.sql.PreparedStatement; import java ...
- SQL——SELECT、UPDATE、DELETE和INSERT INTO
SQL是一种ANSI的标准计算机语言.ANSI:美国国家标准化组织.除SQL标准外,大部分SQL数据库都拥有私有的扩展.SQL对大小写不敏感.某些数据库系统要求在SQL命令末端使用分号,这样可以执行一 ...
- Less定义变量
1. 定义: 使用 @ 符号来定义变量 ,在Less中开头是 @ 则是变量,关于变量的命名方法,大家可以参考js中命名的规则,毕竟是做前端的,有着统一的习惯有助于我们统一风格.个人推荐变量名的命名规则 ...
- [C#] [VS] Snippets快捷代码块之 Region
代码长了,阅读起来不方便, 于是,C#中我们经常会用 region来折叠代码块. 在VS中,输入 #region , 点Tab,会自动生成如下: #region MyRegion #endregion ...
- [256个管理学理论]005.羊群效应(Herd Behavior)
羊群效应(Herd Behavior) 来自于大洋彼岸的让你看不懂的解释: “羊群效应”,也叫“从众效应”,是个人的观念或行为由于真实的或想像的群体的影响或压力,而向与多数人相一致的方向变化的现象.表 ...
- group by和having注意事项
执行和编写顺序:join->where->group by->having 其中where与having的区别: where用于在group by分组之前过滤掉某些行, group ...
- OAuth + Security -1 - 认证服务器配置
配置 基础包依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g ...
- Typora 使用 Markdown 嵌入 LaTeX 数学公式符号语法
博客园不支持渲染 LaTeX 数学公式,需要用到什么公式,请复制到您所用的支持 LaTeX 的编辑器中查看实现效果.Typora 可以渲染 LaTeX 数学公式. 目录 行内与独行 行内公式 独行公式 ...