[转帖]企业nginx简单配置
https://www.jianshu.com/p/6a3e298b31be
第五章 企业简单应用
网站访问方式
1.基于域名访问
www.baidu.com
基于IP地址访问
172.16.1.7
配置文件地址被改动一定要重启服务基于端口访问
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文件内容)
}
第二步: 创建站点目录 , 编写配置默认主页文件
mkdir -p /html/www
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模块
- 编写配置文件
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简单配置
Nginx 配置文件结构如果你下载好啦,你的安装文件,不妨打开 conf 文件夹的 nginx.conf 文件,Nginx 服务器的基础配置,默认的配置也存放在此.在 nginx.conf 的注释符号 ...
- Nginx简单配置,部分来源于网络
nginx.conf listener监听端口 server_name监听域名 location{}是用来为匹配的 URI 进行配置,URI 即语法中的“/uri/”.location / { }匹 ...
- https和http共存的nginx简单配置
server{ listen 80; listen 443 ssl; ssl_certificate /usr/local/nginx/ssl/www.demo.com/www.demo.com.cn ...
- Nginx 简单配置反向代理
nginx 配置反向代理,转发请求到另一个域名 在server中加入 location /${alias} { proxy_buffer_size 128k; proxy_buffers 32 32k ...
- Nginx简单配置几个基于端口的虚拟主机
nginx.conf中,一个server段对应一个虚拟主机,如果要增加多个虚拟主机,增加多个server段即可. server { listen ; access_log logs/.log; loc ...
- CentOS7 nginx简单配置pathinfo模式(ThinkPHP)
location ~ \.php { #去掉$ root H:/PHPServer/WWW; fastcgi_pass 127.0.0.1:9000; fastcgi_in ...
- lnmp源码安装以及简单配置
nginx 软件: a: openssl-1.0.1r.tar.gz tar zxf openssl-1.0.1r.tar.gz b: pcre-8.32.tar.gz tar zxf openssl ...
- 以实际的WebGIS例子探讨Nginx的简单配置
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 以实际项目中的一个例子来详细讲解Nginx中的一般配置,其中涉 ...
- Nginx 简单的负载均衡配置示例(转载)
原文地址:Nginx 简单的负载均衡配置示例(转载) 作者:水中游于 www.s135.com 和 blog.s135.com 域名均指向 Nginx 所在的服务器IP. 用户访问http://www ...
- nginx负载均衡简单配置
nginx负载均衡简单配置准备三台虚拟机来做这个实验:192.168.232.132 web服务器192.168.232.133 web服务器192.168.232.134 ...
随机推荐
- 2021-01-20:mysql中,一张表里有3亿数据,未分表,要求是在这个大表里添加一列数据。数据库不能停,并且还有增删改操作。请问如何操作?
2021-01-20:mysql中,一张表里有3亿数据,未分表,要求是在这个大表里添加一列数据.数据库不能停,并且还有增删改操作.请问如何操作? 福哥答案2020-01-20: 陌陌答案: 用pt_o ...
- 容器中域名解析流程以及不同dnsPolicy对域名解析影响
本文分享自华为云社区<容器中域名解析流程以及不同dnsPolicy对域名解析影响>,作者:可以交个朋友 . 一.coreDNS背景 部署在kubernetes集群中的容器业务通过coreD ...
- 【华为云技术分享】LiteOS无法直接烧录或者烧录失败解决方法--ST-Link
前提条件: 程序编译成功,并且电脑上已经安装ST-Link驱动,你使用的仿真器也是ST-Link. 上图黑色的是J-Link,下图紫色的是ST-Link,本教程适用于ST-Link,如果是J-Link ...
- Sechunter移动应用隐私合规检测详解
摘要:本文简要介绍Sechunter移动应用隐私合规检测的方法步骤,以及目标检测技术在其中的应用. 本文分享自华为云社区<移动应用隐私合规检测简介及目标检测技术的应用>,作者:wolfre ...
- OpenSSL 升级、回滚
ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with ...
- MySQL 错误记录:Data too long for column 'xxx' at row 1
Content 字段是 text 类型(Text是6万多)改成了 longtext 就OK了 ALTER TABLE `Article` CHANGE `Content` `Content` LONG ...
- sort与uniq
1 sort 将文本文件内容加以排序 语法: sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>] ...
- 关于ABAP索引
1.什么是索引 如果把数据库表看做一本书,索引就可以看做书的检索目录.目录中包含书中的大小标题(部分字段数据),并且有对应的数据表条目的页码(指针),可以快速的访问数据库表中对应行的所有字段内容 一个 ...
- JSP | 常见 JSP 简答题
一.简述 JSP 的工作原理 当我们访问一个JSP页面的时候,这个文件首先会被JSP引擎翻译为一个Java源文件,其实就是一个Servlet,并进行编译,然后像其他Servlet一样,由Servlet ...
- 经典Python案例实现
入门_30个常用python实现 .pdf 一. 二. 三. 四. 五.函数篇 5.1 计算圆的面积 from math import pi as PI def CircleArea(r): if i ...