負載平衡之Nginx詳解

PHP中文网
發布: 2017-06-21 13:44:59
原創
2195 人瀏覽過

目录

  • 简介

  • 常用命令

  • 功能

    • 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 – 基本上都用这个Flag。

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

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

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

    静态文件

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

    绑定证书

    # 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詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

      相關標籤:
      來源:php.cn
      本網站聲明
      本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
      作者最新文章
      相關專題
      更多>
      熱門推薦
      熱門教學
      更多>
      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!