IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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;

}

}

}

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-01-08 14:27:52  更:2022-01-08 14:30:26 
 
开发: 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-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码