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简单配置的更多相关文章

  1. Nginx简单配置

    Nginx 配置文件结构如果你下载好啦,你的安装文件,不妨打开 conf 文件夹的 nginx.conf 文件,Nginx 服务器的基础配置,默认的配置也存放在此.在 nginx.conf 的注释符号 ...

  2. Nginx简单配置,部分来源于网络

    nginx.conf listener监听端口 server_name监听域名 location{}是用来为匹配的 URI 进行配置,URI 即语法中的“/uri/”.location  / { }匹 ...

  3. https和http共存的nginx简单配置

    server{ listen 80; listen 443 ssl; ssl_certificate /usr/local/nginx/ssl/www.demo.com/www.demo.com.cn ...

  4. Nginx 简单配置反向代理

    nginx 配置反向代理,转发请求到另一个域名 在server中加入 location /${alias} { proxy_buffer_size 128k; proxy_buffers 32 32k ...

  5. Nginx简单配置几个基于端口的虚拟主机

    nginx.conf中,一个server段对应一个虚拟主机,如果要增加多个虚拟主机,增加多个server段即可. server { listen ; access_log logs/.log; loc ...

  6. CentOS7 nginx简单配置pathinfo模式(ThinkPHP)

    location ~ \.php {    #去掉$ root          H:/PHPServer/WWW; fastcgi_pass   127.0.0.1:9000; fastcgi_in ...

  7. 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 ...

  8. 以实际的WebGIS例子探讨Nginx的简单配置

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 以实际项目中的一个例子来详细讲解Nginx中的一般配置,其中涉 ...

  9. Nginx 简单的负载均衡配置示例(转载)

    原文地址:Nginx 简单的负载均衡配置示例(转载) 作者:水中游于 www.s135.com 和 blog.s135.com 域名均指向 Nginx 所在的服务器IP. 用户访问http://www ...

  10. nginx负载均衡简单配置

    nginx负载均衡简单配置准备三台虚拟机来做这个实验:192.168.232.132        web服务器192.168.232.133        web服务器192.168.232.134 ...

随机推荐

  1. 文心一言 VS 讯飞星火 VS chatgpt (22)-- 算法导论4.2 2题

    二.为Strassen算法编写伪代码. 文心一言: Strassen算法是一种用于矩阵乘法的算法,它的核心思想是通过不断将原始矩阵分割成较小的子矩阵来实现高效的乘法运算.以下是Strassen算法的伪 ...

  2. 15、Flutter 按钮组件

    按钮组件的属性 ButtonStylee里面的常用的参数 ElevatedButton ElevatedButton 即"凸起"按钮,它默认带有阴影和灰色背景.按下后,阴影会变大 ...

  3. 神经网络优化篇:理解指数加权平均数(Understanding exponentially weighted averages)

    理解指数加权平均数 回忆一下这个计算指数加权平均数的关键方程. \({{v}_{t}}=\beta {{v}_{t-1}}+(1-\beta ){{\theta }_{t}}\) \(\beta=0. ...

  4. 从零开始学python | 什么是Python JSON?

    摘要:您知道如何从在线API传输数据或将各种数据存储到本地计算机吗?您已经将自己沉浸于JSON的一种方式中,JSON表示Java Script Object Notation.它是一种著名的流行数据格 ...

  5. 华为云MVP程云:知识化转型,最终要赋能一线

    摘要:如今的智能语音助手,可以帮助我们完成日常生活中的一些常规动作.同样,在企业中,智能问答机器人也在扮演着同样的角色. 本文分享自华为云社区<[亿码当先,云聚金陵]华为云MVP程云:知识化转型 ...

  6. hadoop put 强制覆盖文件

    若hdfs上已经存在文件,要强制覆盖,用 -f 命令 如: hadoop fs -put -f file.name /home/test/

  7. LAS Spark+云原生:数据分析全新解决方案

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 随着数据规模的迅速增长和数据处理需求的不断演进,云原生架构和湖仓分析成为了现代数据处理的重要趋势.在这个数字化时代 ...

  8. 数据治理如何做?火山引擎DataLeap帮助这款产品3个月降低计算成本20%

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 本文讲述字节跳动一款 App 产品的数据治理故事.该产品随着用户体量和数据体量不断增长,数仓的任务量.数据量也不断 ...

  9. System.out.printf 格式化输出

    System.out.printf @Test public void printTest() throws Exception { String str = "安倍晋三已无生命体征!!&q ...

  10. & 0xFF 作用 取低8位

    & 0xFF 取低8位 @Test void byteTest() { byte hex1 = (byte) 127; byte hex2 = (byte) 383; byte hex3 = ...