今日知识点

Nginx

  • LB(Load Balance)负载均衡,负责压力平衡;如果负载均衡器挂了,在没有其他备用的均衡器时,服务无法访问

代理(Proxy)

  1. 正向代理。替客户端发送请求。

  2. 反向代理。替服务端接受请求。

    两者区别是:这就像两个不同的视角,正向代理就像是你是一名公司老板,你有一名秘书,有什么事直接让秘书替你干,秘书就好比正向代理服务器;反向代理就是反过来,你是一名客户,想要找企业大老板,但是大老板业务很忙,不是什么人都能见的,你就只能找他秘书,让秘书替你传话,这秘书就是反向代理服务器。关键区别在于 “秘书替谁服务” 以及 “目标方是否知道真实需求者”

Nginx配置文件介绍

/etc/nginx/nginx.conf

  1. 全局块配置,位于配置文件的最外层,不包含在任何{}块中;作用:设置nginx的全局参数,影响整个服务的运行环境
  2. events块,与全局配置同级;作用:配置nginx与客户端网络链接相关的底层机制,决定nginx如何处理用户的链接请求。
  3. http块,配置nginx处理http/https协议的核心规则,是所有http相关配置的总容器
  4. 配置虚拟主机(Virtual Host),用于区分不同的域名、端口或 IP 对应的服务
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    user nginx; #使用nginx用户登录
    worker_processes auto; #工作进程数,通常为cpu核心数,影响并发处理能力
    error_log /var/log/nginx/error.log; #错误日志地址
    pid /run/nginx.pid; #服务进程pid
    include /usr/share/nginx/modules/*.conf; #扩展功能,以模块的方式
    events { #events块
    worker_connections 1024; #同时工作数
    use epoll;#指定事件驱动模型(Linux 推荐epoll,高效处理大量连接)
    multi_accept on;#允许工作进程一次性接受多个新连接(提高连接处理效率)
    }
    http {
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';
    #设定日志格式
    access_log /var/log/nginx/access.log main; #访问日志地址
    sendfile on; #零拷贝,跳过内存,直接从ssd读数据
    tcp_nopush on; #
    tcp_nodelay on; #不延迟开启
    keepalive_timeout 65; #http长链接超时事件
    types_hash_max_size 4096;
    include /etc/nginx/mime.types; #定义了那些文件格式可以直接查看
    default_type application/octet-stream;
    include /etc/nginx/conf.d/*.conf;
    server {
    listen 80; #IPV4端口监听
    listen [::]:80; #IPV6端口监听
    server_name _; #匹配的域名,IP
    root /usr/share/nginx/html;
    include /etc/nginx/default.d/*.conf;
    error_page 404 /404.html; #配置错误页面
    location = /404.html {
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
    }
    }

反向代理服务器配置

  • master_server:192.168.146.129
  • proxy_server:192.168.146.130
    两台服务器都安装Nginx,然后再proxy_server中配置conf
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    server {
    listen 8090;
    server_name 192.168.146.129;
    location /{
    proxy_pass http://192.168.146.130:80;
    }


    }

    server {
    listen 8080;
    server_name 127.0.0.1;
    location / {
    root /www/server/nginx/html;
    index index.html index.htm;
    }
    }

    同一个端口同一时间只能被一个进程监听,所以上面两个端口进行了更换
    master_server不用配置,这样最简单的反向代理服务器就ok了,这时候curl 192.168.146.130就可以看到103服务器的内容了。