负载均衡之Nginx详解


本文摘自PHP中文网,作者PHP中文网,侵删。

目录

  • 简介

  • 常用命令

  • 功能

    • HTTP集群

    • TCP集群

    • 代理

    • 反向代理

    • 集群

    • 重定向

    • 静态文件

    • HTTPS配置

    • 常见问题

    简介

    Nginx ("engine x") 是一款轻量级,高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。
    传输层的负载均衡有LVS(Linux) 和 NLB(Windows)

    常用命令

    • nginx -v // nginx 版本

    • start nginx // 启动nginx,不阻塞命令窗口

    • nginx -s stop | nginx -s quit // 快速停止 | 有序退出

    • nginx -s reload // 加载配置重新启动

    功能

    代理

    server {    listen 8080;                # 监听8080端口    resolver 114.114.114.114;   # dns解析地址      location / {        proxy_pass  $scheme://$host$request_uri; # 代理到哪个地址        proxy_set_header Host $http_host;        #allow 127.0.0.1;       # 允许127.0.0.1地址访问        #deny all;              # 禁止所有地址访问(allow位置在上面,所以127.0.0.1仍能访问)    }}

    反向代理

    server {    listen 8081;                    # 监听8080端口    server_name  localhost;         # 虚拟hostName    location / {        proxy_pass   http://127.0.0.1:8081; # 反向代理到的服务器    }}

    集群

    HTTP集群

    upstream clusterName {    # 通过weight设置每台服务器分配请求站的权重,值越高分配的越多。    server  127.0.0.1:9000 weight=4;     server  127.0.0.1:8082 weight=1;     # ip_hash会计算ip对应hash值,然后分配到固定服务器    ip_hash; }location / {    proxy_pass   http://clusterName; # 反向代理到群集服务器    # 设置主机头和客户端真实地址,以便服务器获取客户端真实IP    proxy_set_header   Host             $host;     proxy_set_header   X-Real-IP        $remote_addr;     proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;}

    TCP集群

    • 和http同级

      stream {server {    listen 1034;    proxy_pass app;}upstream app {    server 192.168.0.111:5672;    server 192.168.0.112:5672;}}

    重定向

    location / {    rewrite ^/(.*)$ $1 permanent;}
    • flag

    • last ?C 基本上都用这个Flag。

    • break ?C 中止Rewirte,不在继续匹配

    • redirect ?C 返回临时重定向的HTTP状态302

    • permanent ?C 返回永久重定向的HTTP状态301

    静态文件

    location /^(.*) {    root   html;                    # 根目录为html文件夹    index  $1 index.html index.htm; # $1表示正则匹配第一项}

    绑定证书

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    # HTTPS server

    #

    server {

        listen       443 ssl;

        server_name  localhost;

     

        ssl_certificate      /nginx/server.cer; # 公钥(一般为公钥证书 + 中级证书)

        ssl_certificate_key  /nginx/server.key; # 私钥

     

        ssl_session_cache    shared:SSL:1m;

        ssl_session_timeout  5m;

     

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;

        ssl_prefer_server_ciphers on;

    }

    常见问题

    • 与IIS(80端口)冲突

      • 停用IIS 80端口的网站

      • 找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/HTTP下的Start修改其值为0,重启电脑即可

      • 被System占用

      • 被IIS占用

      • nginx群集

        • 如果nginx服务器挂了,那我们的站点就直接挂了,可以通过keepalived组件来搭建多台nginx服务提供服务。

      • error.log 错误日志:signal process started

        • 并非错误,只要执行-s reload就会发出

      以上就是 负载均衡之Nginx详解的详细内容,更多文章请关注木庄网络博客

      相关阅读 >>

      linux服务器如何安装nginx

      nginx为什么会出现403

      重启nginx时nginx.pid文件丢失怎么办

      nginx如何启动

      nginx常见错误及解决方法介绍

      重启nginx有哪几种方法

      nginx在做负载均衡时如何配置

      提高nginx安全性方法

      nginx添加第三方模块

      nginx怎么配置404页面

      更多相关阅读请进入《Source》频道 >>



      打赏

      取消

      感谢您的支持,我会继续努力的!

      扫码支持
      扫码打赏,您说多少就多少

      打开支付宝扫一扫,即可进行扫码打赏哦

      分享从这里开始,精彩与您同在

      评论

      管理员已关闭评论功能...

        正在狠努力加载,请稍候...