| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 【nginx模块01】 -> 正文阅读 |
|
[系统运维]【nginx模块01】 |
1.nginx的功能 web服务器,代理,负载均衡,安全控制 2.nginx的优势 轻量,开源,高性能,高可靠,模块化(功能,代码),配置可读性高,二次开发容易 3.nginx应用场景 web应用,缓存,代理,负载均衡,安全访问 4.nginx的安装 epel源,官方源,源码 5.nginx的配置文件 /etc/nginx/nginx.conf 核心模块 事件模块 HTTP模块 server模块 location /etc/nginx/conf.d/*.conf 服务管理 nginx.service systemctl reload nginx systemctl start nginx nginx -v #版本 nginx -V #编译选项 nginx -t #语法测试 一、nginx目录索引 默认不允许列出整个目录浏览下载 syntax: autoindex on | off default: autoindex off; context: http, server, location autoindex_exact_size off; 默认为on,显示出文件的大小,单位:bytes 修改为off,显示文件大概大小,单位kB、MB、BG autoindes_localtime on; 默认为off,显示文件为GMT时间,文件上传的时间 修改为on,显示为服务器时间,文件上传的时间 location /download { root /oldboy_code; autoindex on; charset utf-8,gbk; #中文乱码解析 autoindex_exact_size off; autoindex_localtime on; } # download目录 在oldboy_code 下 mkdir /oldboy_code/zuoye 将源码解压到zuoye目录中 vi zuoye.conf server { listen 80; server_name upload.oldboy.com; location / { root /oldboy_code/zuoye; index index.html; } } nginx -t #测试 systemctl reload nginx tail /var/log/nginx/error.log 二、nginx状态监控 --with-http_stub_status_module模块支持 syntax: stub_status defautl: - context: server,location nginx -V &> 1.txt grep status 1.txt 查看是否安装了模块 vim game.conf server { listen 80; server_name game.oldboy.com; location /nginx_status { stub_status; access_log off; } } nginx -t systemctl reload nginx systemctl restart nginx #清空所有连接数 http://IP/nginx_status/ vi nginx.conf #主配置文件 keepalive_timeout 0; #测试短和长连接,刷新status 三、nginx访问控制 基于IP的访问控制:http_access_module //允许配置语法 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 两种写法: 先写允许,默认拒绝 先写拒绝,默认允许 从上往下匹配。 1.实例,只允许固定IP访问status vim game.conf server { listen 80; server_name game.oldboy.com; location /nginx_status { stub_status; access_log off; allow 10.0.0.1; deny all; } } 基于用户登陆认证:http_auth_basci_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 yum install https-tools #生成密码工具 ab工具也是这个包 htpasswd -b -c /etc/nginx/auth_conf oldboy 123456 实例: vim game.conf server { listen 80; server_name game.oldboy.com; location /nginx_status { stub_status; access_log off; allow 10.0.0.1; deny all; auth_basic "Don't test, get out !" auth_basic_user_file /etc/nginx/.auth.conf } } 四、nginx访问限制 ngx_http_limit_conn_module #根据定义的key来限制每个键值的连接数。 limit_conn_module #连接频率限制 连接限制语法: Syntax: limit_conn_zone key zone=name:size; Default: — Context: http Syntax: limit_conn zone number; Default: — Context: http, server, location 变量: binary_remote_addr 固定长度4字节 remote_addr 固定长度7-15字节 案例: vi game.conf http { //http段配置连接限制,同一时刻只允许一个客户端ip连接 limit_conn_zone $binary_remote_addr zone=conn_game:10m; #IP有多少,1个ip4个字节,10m够用 ... server { ... location / { //同一个时刻只允许一个客户端IP连接 limit_conn conn_game 1; } } } nginx -t nginx -s reload limit_req_module #请求频率限制,优化中,使用这个优化,限制单个IP在1s内的请求数 Syntax: limit_req zone=name [burst=number] [nodelay | delay=number]; Default: — Context: http, server, location Syntax: limit_req_zone key zone=name:size rate=rate [sync]; Default: — Context: http vim game.conf http { //http配置请求限制,rate限制速率,限制1s最多1个请求 limit_req_zone $binary_remote_addr zone=req_zone:10m rate=1r/s; .. server { location / { //1r/s只接收1个请求,其余拒绝,返回错误码 limit_req zone=req_zone; //请求超过1r/s,其他被延迟处理,请求超过burst,其他返回503 limit req_zone=req_zone burst=3 nodelay; } } } |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 6:32:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |