Nginx

关键词:负载均衡、反向代理

什么是Nginx

Nginx是一个高性能HTTP反向代理Web服务器,同时提供了IMAP/SMTP服务。由俄罗斯访问量第二的Rambler ru 站提供,作者:伊戈尔·塞索耶弗

优势

作为Web服务器,和Apache Tomcat比,Nginx更轻量占用资源少,并支持更多的并发链接。

负载均衡

c语言开发的非常快,能作为HTTP代理服务器使用

Nginx config配置

# Nginx配置文件
# 定义了服务器的工作模式和事件处理机制

worker_processes  1;  # 指定nginx使用的工作进程数,这里设置为1个进程

# 事件处理配置,主要影响连接处理效率
events {
    worker_connections  1024;  # 每个工作进程的最大连接数,这里是1024
}

# HTTP服务配置,包括全局默认配置和服务器块配置
http {
    # 包括mime.types文件中定义的各种文件类型的处理
    include       mime.types; 
    default_type  application/octet-stream;  # 默认的文件类型

    # 启用sendfile机制,提高文件发送效率
    sendfile        on;

    # 服务器块配置,可以有多个,这里只定义了一个监听80端口的服务器
    server {
        listen       80;  # 监听的端口
        server_name  localhost;  # 服务器名称,这里配置为localhost

        # 首页配置,请求根目录时的处理
        location / {
            root   html;  # 设置文档根目录
            index  index.html index.htm;  # 设置首页文件
        }

        # 错误页面配置
        error_page   500 502 503 504  /50x.html;  # 指定错误页面的位置
        location = /50x.html {  # 特定错误页面的处理
            root   html;  # 错误页面的所在目录
        }
    }
}

Nginx负载均很策略

  1. 轮询(Round Robin) : 是Nginx默认策略,会按照顺序调用,实现负载均衡。
  2. 加权轮询(Weighted Round Robin) : 是默认轮询的拓展,给服务器分配不同的权重,来决定请求发给那台服务器,权重越高收到的请求越多。weight = 权重
  3. IP哈西(IP Hash) : 通过亲求的IP地址作为哈希键,确保同一地址的请求总是在一台服务器上ip_hash
  4. 最少链接(Least Cinnections) : 分配当前请求链接数最少的服务器上,确保服务器负载均衡,避免某些服务器处理过多请求。
  5. URL哈希 (URL Hash) : 通过URL地址作为Hash,确保相同URL在同一台服务器上(第三方插件)
  6. 最短时间 (Least Time) : 分配请求到响应最短时间的服务器上(第三方)