IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Nginx -> 正文阅读

[系统运维]Nginx

1、入门

1.1、什么是Nginx?

  • 高性能的HTTP和反向代理的web服务器
  • 支持热部署,数个月不间断运行
  • 占有内存少,并发能力强
  • 专为性能优化而开发非常注重效率,能经受高负载的考验
  • 有报告表明能支持高达5w的并发数

1.2、反向代理

正向代理:

  1. Nginx不仅可以做反向代理实现负载均衡,还能做正向代理进行上网等功能。
  2. 如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需要通过代理服务器,这种代理服务称为正向代理

? image-20211204130705116

反向代理:

  1. 客户端对代理无感知的,因为客户端不需要任何配置就可以访问
  2. 我们只需将请求发送到反向代理服务器,由ta去选择目标服务器获取数据后,返回给客户端
  3. 此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理的地址,隐藏真实服务器的IP

1.3、负载均衡

有多个真实服务器,请求会先经过代理服务器,然后由某种算法合理分配到其中的一个。

image-20211204132949530

1.4、动静分离

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器解析,降低当服务器的压力

image-20211204132840787

2、使用

2.1、安装

环境要求:

  • pcre-8.37.tar.gz
  • openssl-1.0.1t.tar.gz
  • zlib-1.2.8.tar.gz
  • nginx-1.11.1.tar.gz

Nginx中文官网:https://www.nginx.cn/install

2.2、常用命令

  1. 查看版本号:./nginx -v
  2. 停止服务:./nginx -s stop
  3. 开启服务:./nginx
  4. 查看是否开启:ps -ef | grep nginx
  5. 重加载服务:./nginx -s reload

2.3、nginx.conf

  • nginx的配置文件
  • 分为三部分:
    • 全局
    • events块
    • http块

全局块

  • 主要设置一些影响nginx整体运行的指令
  • 主要包括:
    • 用户组
    • 允许生成的workere process数
    • 进程PID存放路径
    • 日志路径和类型
    • 配置文件的引入等
  • worker_processes
    • 值越大,能处理的并发量越多
    • 会受到硬件和软件等设备的约束

events块:

  • 主要配置Nginx与用户的网络连接的指令
  • 主要包括:
    • 是否开启对多
    • work process下的网络连接进行序列化
    • 是否允许同时接收多个网络连接
    • 选取哪种事件驱动模型来处理连接请求
    • 每个work proess可以同时支持的最大连接数
  • worker_connnections:每个work process支持的最大连接数

http块:

  • 包括http全局块和server

  • http全局块指令:

    • 文件引入
    • MIME-TYPE定义
    • 日志自定义
    • 连接超时时间
    • 单链接请求数上限等
  • server块:

    • 与虚拟主机密切相关
    • 虚拟主机从用户角度看,与一台独立硬件主机完全一样,该技术的产生是为了节省互联网服务器硬件成本
    • http块可包括多个server块,而每个server块据相当于一个虚拟主机
    • 每个server块分为全局server块以及多个location块
    • 全局server块:
      • 本主机的监听配置和名称或IP配置
    • location块
      • 主要作用是基于Nginx服务器接收到的请求字符串(例如server_name/uri-string),对虚拟主机名称(也能使IP别名)之外的字符串(例如/uri-string)进行匹配
      • 对特定的请求进行处理
      • 地址定向
      • 数据缓存
      • 应答控制
      • 第三方模块的配置

2.4、反向代理

假设有三个域名:

  1. www.test1.com
  2. www.test2.com
  3. www.test3.com

nginx.conf配置:

server{
  listen 80;
  server_name www.test1.com;
  location / {
    root html;
    proxy_pass http://ip:端口1; #转发到此端口1
    index index.html index.htm;
  }       
}

server{
  listen 80;
  server_name www.test2.com;
  location / {
    root html;
    proxy_pass http://ip:端口2; #转发到此端口2
    index index.html index.htm;
  }       
}

server{
  listen 80;
  server_name www.test3.com;
  location / {
    root html;
    proxy_pass http://ip:端口3; #转发到端口3
    index index.html index.htm;
  }       
}

2.5、负载均衡

nginx.conf:

server{
  listen 80;
  server_name ip;
  location / {
    root html;
    proxy_pass http://myserver;
    index index.html index.htm;
  }       
}

分配策略:

  • 轮询(默认):

    • 每个请求按照时间顺序逐一分配到不同的服务器,若服务器down掉,自动剔除

    • upstram myserver{
      	server ip:8080;
      	server ip:8081;
      }
      
  • weight:

    • 权重,默认为1,权重越高被分配的请求越多

    • 指定轮询几率,用于性能不均的情况

    • upstram myserver{
      	server ip:8080 weight=5;
      	server ip:8081 weight=10;
      }
      
  • ip_hash:

    • 每个请求按访问ip的hash分配

    • 每个客户固定访问一个服务器

    • 可以解决session共享问题

    • upstram myserver{
      	ip_hash;
      	server ip:8081;
      	server ip:8081;
      }
      
  • fair(第三方):

    • 按后端服务器的响应时间来分配

    • 时间短的优先分配

    • upstream myserver{
      	server ip:8080;
      	server ip:8081;
      	fair;
      }
      

2.7、动静分离

动静分离有两种方式:

  • 一种是动静放在不同服务器,也是目前主流的方案

  • 第二种是动静混合,通过nginx分开,指定location不同的后缀实现不同的转发。设置expires参数,可以使浏览器缓存过期时间。也就是说无需服务端验证,直接通过浏览器自身确认是否过期即可,所以不会产生额外流量。此方法适合经常变动的资源。值为3d表示缓存3天,每次发送请求对比该文件的最后更新时间,若无变化则不会抓取,返回304,若修改,直接重新下载,返回200;

有两个文件

/data/image/a.jpg

/data/www/b.html

nginx.conf配置:

server{
	listen 80;
	server_name ip;
	location /www/ {
		root /data/;
		index index.html index.htm;
	}
	location /image/ {
		root /data/;
		autoindex on;# 它的作用为当访问这个路径时,显示文件
	}
}

2.8、高可用集群

image-20211204205321493
  1. 需要两台nginx服务器

    112.124.32.136

    121.40.40.202

  2. 需要keepalived

    #ubantu
    sudo apt install keepalived -y
    
  3. 需要虚拟ip

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-05 12:23:43  更:2021-12-05 12:25:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:51:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码