Nginx 笔记

一、Nginx基本概念
1 nginx 属于 HTTP 服务器。(也可以叫 Web 服务器)
2 Nginx代码完全用C语言从头写成
3 Nginx (“engine x”)是一个高性能的HTTP和反向代理服务器

特点:占有内存少,并发能力强,并发能力在同类型的网页服务器中表现较好

Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50, 000个并发连接数。
Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动

4 Nginx 的基本命令

nginx -s stop 关闭nginx
nginx -s reload 重新加载配置文件,且不关闭服务器
nginx -v 查看版本号

5 nginx 的配置文件

1 配置文件位置
在这里插入图片描述
2、配置文件中的内容 包含三部分内容
(1)全局块:配置服务器整体运行的配置指令
比如 worker_processes 1;处理并发数的配置

(2)events 块:影响 Nginx 服务器与用户的网络连接
比如 worker_connections 1024; 支持的最大连接数为 1024

(3)http 块 还包含两部分:

http 全局块

server 块 

二 反向代理

1 暴露的是代理服务器地址,隐藏了真实服务器 IP 地址
在这里插入图片描述
2 实例
2.1 实现效果

打开浏览器,在浏览器地址栏输入地址 www.123.com,跳转到 liunx 系统 tomcat 主页 面中

2.2 访问过程分析

在这里插入图片描述
2.3 具体过程

第一步 在 windows 系统的 host 文件进行域名和 ip 对应关系的配置
第二步 在 nginx 进行请求转发的配置(反向代理配置)
在这里插入图片描述
第三步 测试结果
在这里插入图片描述
实例二
1 效果
访问 http://192.168.17.129:9001/edu/ 直接跳转到 127.0.0.1:8080 访问 http:// 192.168.17.129:9001/vod/ 直接跳转到 127.0.0.1:8081
2 配置
在这里插入图片描述

三 负载均衡
1 增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的 情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡
在这里插入图片描述
2 实例
1、实现效果
浏览器地址栏输入地址 http://192.168.17.129/edu/a.html,负载均衡效果,平均 8080 和 8081 端口中

2 在 nginx 的配置文件中进行负载均衡的配
在这里插入图片描述
3 nginx 分配服务器策略

第一种 轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

第二种 weight weight 代表权重默认为 1,权重越高被分配的客户端越多

第三种 ip_hash 每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器

第四种 fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配

四 动静分离
静态资源放到静态服务器上,动态资源放到Tomcat上,根据请求不同访问不同的服务器,减轻服务器的压力
在这里插入图片描述
通过 location 指定不同的后缀名实现不同的请求转发。
通过 expires 参数设置,可以使浏 览器缓存过期时间,减少与服务器之前的请求和流量。
具体 Expires 定义:是给一个资源 设定一个过期时间,也就是说无需去服务端验证,直接通过浏览器自身确认是否过期即可, 所以不会产生额外的流量。此种方法非常适合不经常变动的资源。(如果经常更新的文件, 不建议使用 Expires 来缓存),我这里设置 3d,表示在这 3 天之内访问这个 URL,发送一 个请求,比对服务器该文件最后更新时间没有变化,则不会从服务器抓取,返回状态码 304, 如果有修改,则直接从服务器重新下载,返回状态码 200

配置
在这里插入图片描述
autoindex on 访问显示目录(下载站点)
效果在这里插入图片描述
5 高可用
在这里插入图片描述
1 配置高可用的准备工作
(1)需要两台服务器 192.168.17.129 和 192.168.17.131
(2)在两台服务器安装 nginx
(3)在两台服务器安装 keepalived

2 完成高可用配置(主从配置)
(1)修改/etc/keepalived/keepalivec.conf 配置文件

global_defs { 
   notification_email { 
     acassen@firewall.loc 
     failover@firewall.loc 
     sysadmin@firewall.loc 
   } 
   notification_email_from Alexandre.Cassen@firewall.loc 
   smtp_server 192.168.17.129 
   smtp_connect_timeout 30 
   router_id LVS_DEVEL 
} 
  
vrrp_script chk_http_port { 
  
   script "/usr/local/src/nginx_check.sh" 
     interval 2      #(检测脚本执行的间隔) 
       weight 2 
  
} 
  
vrrp_instance VI_1 {     state BACKUP   # 备份服务器上将 MASTER 改为 BACKUP    、
    interface ens33  //虚拟网卡名称  
    virtual_router_id 51   # 主、备机的 virtual_router_id 必须相同    
    priority 90     # 主、备机取不同的优先级,主机值较大,备份机值较小 
    advert_int 1 
    
        authentication { 
        auth_type PASS 
        auth_pass 1111 
    } 
    virtual_ipaddress {       
      192.168.17.50 // VRRP H 虚拟地址 
    } 
} 

脚本

#!/bin/bash A=`ps -C nginx –no-header |wc -l` 
if [ $A -eq 0 ];
  then    
 /usr/local/nginx/sbin/nginx     sleep 2    
  if [ `ps -C nginx --no-header |wc -l` -eq 0 ];
  then        
   killall keepalived     fi fi 

6 原理
在这里插入图片描述
worker 如何进行工作的
在这里插入图片描述

1 一个 master 和多个 woker 有好处
(1)可以使用 nginx –s reload 热部署,利用 nginx 进行热部署操作 (2)每个 woker 是独立的进程,如果有其中的一个 woker 出现问题,其他 woker 独立的, 继续进行争抢,实现请求过程,不会造成服务中断

2 设置多少个 woker 合适
worker 数和服务器的 cpu 数相等是最为适宜的

3 连接数 worker_connection 第一个:发送请求,占用了 woker 的几个连接数?
答案:2 或者 4 个

第二个:nginx 有一个 master,有四个 woker,每个 woker 支持最大的连接数 1024,支持的 最大并发数是多少?
 普通的静态访问最大并发数是: worker_connections * worker_processes /2,
 而如果是 HTTP 作 为反向代理来说,最大并发数量应该是 worker_connections * worker_processes/4

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值