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. Java程序接入ChatGPT

    目录 0 前言 1 还想体验的小伙伴可以试试 2 Java接入前准备 3 官方支持接入语言 4 调用费用 5 接口调用说明 6 代码实现 6.1 postman调用 6.2 Java调用 7 小结 0 ...

  2. 仿微信语音聊天webrtc

    主要技术 MediaRecorder 录音 webrtc 获取麦克风 URL.createObjectURL 转换为url(实际生产中,通过后端转换blob为mp3网址) 实现elementui+vu ...

  3. 掌数科技携手华为云GaussDB,助力金融科技创新,联合打造行业标杆

    本文分享自华为云社区<掌数科技携手华为云GaussDB,助力金融科技创新,联合打造行业标杆>,作者:GaussDB 数据库 . 近日,在华为开发者大会2023(Cloud)的"G ...

  4. GaussDB拿下的安全认证CC EAL4+究竟有多难?

    摘要:近日,经过全球知名独立认证机构SGS Brightsight实验室的安全评估,华为云GaussDB企业级分布式数据库内核获得全球权威信息技术安全性评估标准CC EAL4+级别认证 本文分享自华为 ...

  5. 你眼中的程序员 VS 程序员眼中的自己,是时候打破代沟了

    摘要:修电脑?格子衫?脱发?程序员被误解了怎么办?如何一句话向父母说明白你的工作? 有人说,你们程序员工作赚钱真简单,电脑上按按键盘就行了,一点也不辛苦. 有人说,程序员不懂生活,就知道天天对着电脑. ...

  6. Walrus 入门教程:如何创建模板以沉淀可复用的团队最佳实践

    模板是 Walrus 的核心功能之一,模板创建完成后用户可以重复使用,并在使用过程中逐渐沉淀研发和运维团队的最佳实践,进一步简化服务及资源的部署.用户可以使用 HCL 语言自定义创建模板,也可以一键复 ...

  7. 叫板GPT-4的Gemini,我做了一个聊天网页,可图片输入,附教程

    先看效果: 简介 Gemini 是谷歌研发的最新一代大语言模型,目前有三个版本,被称为中杯.大杯.超大杯,Gemini Ultra 号称可与GPT-4一较高低: Gemini Nano(预览访问) 为 ...

  8. KVM--基本管理

    #!/bin/bash iso=/iso/CentOS-7-x86_64-Minimal-1708.iso #本机镜像文件位置 centos=centos7.0 #操作系统版本 disk_path=/ ...

  9. DNS--安装&&配置文件

    1 下载 #下载服务yum -y install bind#下载解析工具yum -y install bind-utils 2 配置文件 主配置文件 /etc/named.conf 区配置文件 /va ...

  10. 【计算机网络】身份认证Oauth2

    身份认证Oauth2 https://www.bilibili.com/video/BV1FL411h7es/?spm_id_from=333.999.0.0&vd_source=d11276 ...