[转帖]企业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/wwwvim /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 ...
随机推荐
- maven系列:多环境配置与应用
目录 一.多环境配置步骤 定义多环境 使用多环境(构建过程) 二.跳过测试(了解) 应用场景 跳过测试命令 2.3 细粒度控制跳过测试 多环境配置有什么好处? maven提供配置多种环境的设定,帮助开 ...
- 大数据实践解析(下):Spark的读写流程分析
导读: 众所周知,在大数据/数据库领域,数据的存储格式直接影响着系统的读写性能.spark是一种基于内存的快速.通用.可扩展的大数据计算引擎,适用于新时代的数据处理场景.在"大数据实践解析( ...
- 新晋“网红”Cat1 是什么
摘要:此Cat非彼Cat,它是今年物联网通信圈新晋网红"靓仔". 引言 今年5月,工信部发布了<关于深入推进移动物联网全面发展的通知>,明确提出推动存量2G.3G物联网 ...
- 实践GoF的设计模式:访问者模式
摘要:访问者模式的目的是,解耦数据结构和算法,使得系统能够在不改变现有代码结构的基础上,为对象新增一种新的操作. 本文分享自华为云社区<[Go实现]实践GoF的23种设计模式:访问者模式> ...
- 50亿海量数据如何高效存储和分析? GaussDB (for Cassandra) 3个秘诀搞定
摘要:信息社会正在从互联网时代走向物联网时代,企业不可避免的要面对数据量剧增带来的一系列问题:如何高效存储和扩容,如何在对原有业务改动最小的情况下做到智能化和实时分析. 本文分享自华为云社区<5 ...
- 在linux后台运行脚本的方法和命令
后台运行脚本 执行脚本test.sh:./test.sh 中断脚本test.sh:ctrl+c 在1的基础上将运行中的test.sh,切换到后台并暂停:ctrl+z 执行ctrl+z后,test.sh ...
- Spring解决泛型擦除的思路不错,现在它是我的了。
你好呀,我是歪歪. Spring 的事件监听机制,不知道你有没有用过,实际开发过程中用来进行代码解耦简直不要太爽. 但是我最近碰到了一个涉及到泛型的场景,常规套路下,在这个场景中使用该机制看起来会很傻 ...
- Excel 查找替换 -- 快速填充
单元格匹配,这样就不会把 70 的 0 替换成 7零 了 Ctrl + E 快速填充 一列变多行 快速填充 1. 快速拆分数据 一列数据中包含了姓名和手机号码,这时你需要进行数据拆分,快速填充可以实现 ...
- print('Hello World!')的新玩法
相信很多同学入门Python的第一行代码都是print('Hello World!') print是初学者最先接触的Python函数,但是很多人可能到现在也不完全清楚它的用法. print(*obje ...
- 【HZERO】定时任务