[转帖]企业nginx简单配置

企业,nginx,简单,配置 · 浏览次数 : 0

小编点评

**生成内容时需要带简单的排版** **1. 使用模块** * **location / {}**:定义模块内使用的共享存储空间和指令。 * **limit_conn zone**:定义共享存储空间并限制连接数。 **2. 使用指令** * **limit_conn oldboy 1**:限制每个源IP只能建立一个连接。 * **limit_req zone=name [burst=number] [nodelay]**:限制每个IP可处理的请求数量。 **3. 使用变量** * **$remote_addr 变量收集的信息占用存储空间大**:存储每个源IP地址对应的连接数。 * **$binary_remote_addr 变量的长度是固定的4字节**:存储源IP地址的长度。 **4. 使用条件** * **if statement**:根据用户访问频率设置限制。 * **else statement**:根据不同用户访问频率设置不同的限制。 **5. 使用循环** * **for loop**:根据用户访问频率设置循环处理。 * **while loop**:根据用户访问频率设置循环处理。 **6. 使用模块和指令** * **location / {}**:定义模块内使用的共享存储空间和指令。 * **limit_conn zone**:定义共享存储空间并限制连接数。 * **limit_req zone=name [burst=number] [nodelay]**:限制每个IP可处理的请求数量。 **7. 使用变量和条件** * **$remote_addr 变量收集的信息占用存储空间大**:存储每个源IP地址对应的连接数。 * **if statement**:根据用户访问频率设置限制。 * **else statement**:根据不同用户访问频率设置不同的限制。

正文

https://www.jianshu.com/p/6a3e298b31be

 

第五章 企业简单应用

网站访问方式

1.基于域名访问
www.baidu.com

  1. 基于IP地址访问
    172.16.1.7
    配置文件地址被改动一定要重启服务

  2. 基于端口访问
    10.0.0.51:80

修改扩展配置文件端口信息后访问时优选规则:

根据请求报文结构进行匹配 先进行匹配IP地址 (符合)

进行匹配端口 符合的端口进行下一步筛选 (符合)

进行匹配服务名称 (符合)

PS在匹配服务名称时会默认按照英文字母顺序进行匹配

(符合): 直接进行传输数据显示页面
(当除IP外有一项不符合) 会从符合的选项中显示第一个匹配项 按照字母从大到小进行排列

企业搭建静态网站页面

第一步: 编写扩展配置文件

vim /etc/nginx/conf/www.conf

server{

 listen 80;                  # 指定端口 默认为80

 server_name bbs.oldboy.com; # 指定域名信息

 root /html/www;             # 指定站点目录

 index index.html;           #  指定页面默认主页显示加载文件(默认指定显示index.html文件内容)

}

第二步: 创建站点目录 , 编写配置默认主页文件

  1. mkdir -p /html/www

  2. vim /html/bbs/index.html

PS: 使用 nginx -t检查配置文件语法是否错误 无误后在进行下一步操作

第三步: 重启nginx服务

systemctl restart nginx

PS: 注意 修改配置文件关于IP地址信息不要用平滑重启 做DNS解析后登陆页面查看是否和预期一致

动态页面

建立nginx和php的通讯

(1) 编写nginx扩展配置文件

server {

 listen 80;

 server_name blog.oldboy.com;

 location / {

 root /html/blog;

 index index.php index.html;

 }

 location ~ \.php$ {           # 指定匹配 .php结尾访问

 root /html/blog;              # 指定php解析的站点目录

 fastcgi_pass 127.0.0.1:9000;  # 指定php服务地址 : 端口

 fastcgi_index index.php;      # 指定php解析的默认网页文件

 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
(将站点目录和网页文件传输信息给PHP服务)
 include fastcgi_params;        # 指定解析变量使php服务识别

 }

}

安装php服务

更新yum源

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

下载php服务

yum install -y php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb

企业多域名网站配置搭建

和配置一个静态网页差不多 设置多个配置文件及指定站点目录

第一步: 编写多个扩展配置文件

vim /etc/nginx/conf/www.conf

server{

 listen 80;                        # 指定端口 默认为80

 server_name bbs.oldboy.com;       # 指定域名信息

 root /html/bbs;                   # 指定站点目录

 index index.html;                 # 指定页面默认主页显示加载文件(默认指定显示index.html文件内容)

}

第二步: 创建站点目录 , 编写配置默认主页文件

mkdir -p /html/bbs

vim /html/bbs/index.html

PS: 使用nginx -t检查配置文件语法是否错误 无误后在进行下一步操作

第三步: 重启nginx服务

systemctl restart nginx

PS: 注意 修改配置文件关于IP地址信息不要用平滑重启

搭建数据共享服务(yum仓库网站)

(1) 修改扩展配置文件

server{

 listen 80;

 server_name www.old.com;

 root /html/www;

 index index.html;

 autoindex on;        # 指定不显示默认主页 显示目录结构

 charset utf-8;       # 指定语言解码方式

}

重启服务

利用nginx服务配置安全访问策略

根据IP地址进行限制访问

实现IP地址限制需要编写nginx扩展配置文件 加入location模块

  1. 编写配置文件
location /psp {       # 匹配站点子目录

allow 10.0.0.1;       # 进行什么处理

deny all;             # all代表所有

}

location /hp {  

deny 10.0.0.1;         # 允许指定IP进行访问指定目录

allow all;             # 禁止指定IP进行访问指定目录

}                      # 在server模块内嵌入编写即可

根据认证信息限制访问

设置指定站点目录需要账号密码才可以进行访问

(1) 编写配置文件

server{

 listen 80;

 server_name www.oldboy.com;

 root /html/www;

 index index.html;

 location /php{                  # 指定加密目录

 auth_basic "sss(内容自己定义无意义)";   # 指定开启服务

 auth_basic_user_file /html/www/password.txt;    # 指定密码文件路径

 }

}

(2) 创建密码文件 密码文件需要以密文形式书写 确保安全性 利用htpasswd命令进行创建HTTP服务专用密码文件

默认htpasswd命令Linux系统没有安装 需要手动安装

yum install -y httpd-tools # 安装服务

htpasswd参数集

-c 创建密码文件 并覆盖写入指定用户和密码信息

-bc 免交互创建密码文件

-b 免交互追加用户信息

-D 删除指定用户

语法: htpasswd -bc /html/www/password.txt zin 123456

(命令) (参数) (密码文件路径) (用户名) (密码)

(3) 重启服务

systemctl restart nginx

网站页面状态监控功能

网站简易监控功能只监控开始监控之后的数据

(1) 编写配置文件 使用模块:

location / {

stub_status;

}

具体范例:

server {

 listen 80;

 server_name state.oldboy.com;

 stub_status;       --- 开启访问状态监控功能

}

(2) 重启后访问网站 默认显示为当前网站访问信息

当客户端发起连接会经过TCP三次握手连接上 期间长链接会在一次连接传输多个HTTP报文后 , 等待设定时间后在进行四次挥手断开连接

Active connections: 11
在线连接数 同时有多少客户端和网站服务端建立了三次握手过程

server accepts 289  
从服务运行开始, 接收的所有连接请求总和

handled 289  
从服务运行开始, 处理的所有连接请求总和
(一般两者数量相同 高并发或服务器限制了连接数量时会波动)

requests      1005  
从服务运行开始, 所有HTTP请求包的数量(默认长连接)
修改配置文件可改为短链接: keepalive_timeout 65; --- 主配置文件参数, 数值为0表示开启短连接/数值非0表示开启长连接

Reading: 0 
当前服务器正在读取客户端请求头的数量(连接数)

Writing: 1 
当前服务器正在写响应信息的数量(连接数)

Waiting: 10 
当前多少客户端在等待服务器的响应 (排队等待连接的客户端数)

nginx服务访问流量控制功能

网站收到攻击 爬虫 非内部人员测试时 会使网站的压力过大,这时就需要进行访问限制

限制方式一

基于IP地址连接数进行控制

说明: 一个源IP会释放多个连接数消耗服务器资源

这时就要控制一个源ip地址只能建立一个连接

方法: 使用http_limit_conn_module模块进行限制

配置指令信息:

Syntax:  limit_conn_zone key zone=name:size;   模块本体

Default: —  默认值

Context: http   指定可以在什么模块内使用

解释:

key: 变量信息,在连接建立后,收集什么信息做控制管理

$remote_addr 变量的长度为7字节到15字节 存储状态在32位平台中占用32字节或64字节,在64位平台中占用64字节。

(变量指定收集源IP地址存储指定的存储空间) $remote_addr 变量收集的信息占用存储空间大

$binary_remote_addr 变量的长度是固定的4字节 存储状态在32位平台中占用32字节或64字节,在64位平台中占用64字节。

(变量指定收集源IP地址存储指定的存储空间) $binary_remote_addr 变量收集的信息占用存储空间小

1M共享空间可以保存3.2万个32位的状态,1.6万个64位的状态。

zone: 定义共享存储空间

name: 存储空间的名称信息

size: 存储空间大小信息

Syntax: limit_conn zone number;   模块内定义功能

Default: —  默认值

Context: http, server, location    可在什么模块内使用

解释:

zone: 调用响应的存储空间

number: 限制存储空间源IP地址可以处理的数量

IP地址连接数控制 实例:

limit_conn_zone $binary_remote_addr zone=oldboy:10m; 定义收集的源IP放入oldboy存储空间 空间大小为10MB

server {    ß 模块只能在http模块内使用 不能放入server模块

 listen 80;

 server_name www.oldboy.com;

 root /html/www;

 index index.html;

 limit_conn oldboy 1;   ß 定义oldboy存储空间的每个源IP只能有一个并行连接数

}

限制方式二

利用http_limit_req_module模块

配置指令信息:

Syntax:  limit_req_zone key zone=name:size rate=rate [sync];    模块主体

Default: —       默认值

Context: http    可在什么模块内进行使用

具体指令说明

key: 变量信息,在连接建立后,收集什么信息做控制管理

$remote_addr 变量的长度为7字节到15字节 存储状态在32位平台中占用32字节或64字节,在64位平台中占用64字节。

$binary_remote_addr 变量的长度是固定的4字节 存储状态在32位平台中占用32字节或64字节,在64位平台中占用64字节。

1M共享空间可以保存3.2万个32位的状态,1.6万个64位的状态。

zone: 定义共享存储空间

name: 存储空间的名称信息

size: 存储空间大小信息

rate: 多个请求频次信息

Syntax:  limit_req zone=name [burst=number] [nodelay];   主体模块指令

Default: —    默认值

Context: http, server, location     可在什么模块内使用

burst=number:   最大的请求阈值(频次 次数), 超过阈值请求都会进行控制      

基于用户访问请求频次进行限制

实例:

limit_req_zone $binary_remote_addr zone=creq:10m rate=1r/s;rate 指定多久处理一次同一IP的请求 r=次数 s=时间

server {

 listen 80;

 server_name www.oldboy.com;

 root /html/www;

 index index.html;

 limit_req zone=creq burst=10;  
指定最大的请求阈值为10, 超过阈值请求都会进行控制

}

与[转帖]企业nginx简单配置相似的内容:

[转帖]企业nginx简单配置

https://www.jianshu.com/p/6a3e298b31be 第五章 企业简单应用 网站访问方式 1.基于域名访问www.baidu.com 基于IP地址访问172.16.1.7配置文件地址被改动一定要重启服务 基于端口访问10.0.0.51:80 修改扩展配置文件端口信息后访问时优

[转帖]Traefik中诡异的502和504问题

https://zhuanlan.zhihu.com/p/156138704 我们都知道在 Kubernetes 集群中通常会使用 Ingress 方案来统一代理集群内部的流量,而常用的 Ingress 方案为 traefik 和 nginx,和传统的 Nginx 作为企业内部的反向代理以及负载设备

[转帖]中国企业应对美国制裁系列(一)——美国主要制裁清单及检索网址

https://zhuanlan.zhihu.com/p/518188074 美国主要制裁清单及检索网址如下: 1. SDN(Specially Designated Nationals and Blocked Persons List,即特别指定国民清单)清单[依据:美国13662号总统行政命令及

[转帖]07-rsync企业真实项目备份案例实战(需求收集--服务器配置---客户端配置---报警机制---数据校验---邮件告警)

https://developer.aliyun.com/article/885820?spm=a2c6h.24874632.expert-profile.279.7c46cfe9h5DxWK 简介: 2.需求描述 客户端需求: 1.客户端每天凌晨1点在服务器本地打包备份(系统配置文件、日志文件、其

[转帖]SqlServer 突破CPU 20核限制

SqlServer安装时企业版会有两种选项:Microsoft SQL Server Enterprise (64-bit),Microsoft SQL Server Enterprise: Core-based Licensing (64-bit)。前者为Enterprise Server+CAL

[转帖]ESXi主机网卡识别为10Mb导致业务缓慢

某企业所有业务系统及应用运行在由5台安装了ESXi 6.0的服务器组成的虚拟化环境中,已经稳定运行了多年,基本上没有出过问题。 今天下午企业工程师联系我,说单位的业务系统访问很慢。在业务系统中PING网关的延时超过2ms,平常都是小于1ms。近期单位服务器与网络没有改动。 检查发现有台物理主机内存报

[转帖]openGauss_3.1.0 企业版_x86_64安装教程

https://www.cnblogs.com/cjnlll/p/16849620.html 1. 安装环境 VMware、Xshell、Xftp openeuler操作系统 openEuler-20.03-LTS-x86_64安装教程:https://www.cnblogs.com/cjnlll/

[转帖]Centos8/Ubuntu 20 安装 seafile 7.1.12 专业版|企业版 脚本快速安装教程(可选择安装目录)

https://www.ittel.cn/archives/4762.html 好像没有更新了,之前介绍了安装seafile企业版7.0.14的安装教程,现在介绍下seafile企业版 7.1.12安装 教程。 目录 更新说明 : 说明下seafile企业版 7.1.12和seafile企业版 7.

[转帖]一篇文章让你了解灾备指标:RPO与RTO

RTO 和 RPO 都是企业灾难恢复(Disaster Recovery, DR)需要考虑的关键指标,这两个指标可以用来指导企业来制定合适的业务系统服务或数据的恢复方案。 RPO(Recovery Point Objective):即数据恢复点目标,主要指的是业务系统所能容忍的数据丢失量。 如果以定

[转帖]Centos 7.6 安装部署 openGauss 2.0 企业版 HA

https://www.modb.pro/db/567253?utm_source=index_ori 一、安装环境设置 1.1 硬件环境 名称最低配置建议配置测试配置 服务器数量 2 略 略 硬盘 * 至少1GB用于安装openGauss的应用程序。* 每个主机需大约300MB用于元数据存储。*