负载均衡之Nginx详解

发布时间 - 2017-06-21 00:00:00    点击率:

目录

  • 简介

  • 常用命令

  • 功能

    • 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  # 重定向  # 挂了  # 客户端  # 就会  # 公钥  # 可以通过  # 越多  # 在上面  # 都用  # 越高 


      相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


      相关推荐: 免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  高防服务器租用如何选择配置与防御等级?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  微信小程序 HTTPS报错整理常见问题及解决方案  如何用y主机助手快速搭建网站?  如何快速搭建高效简练网站?  微信公众帐号开发教程之图文消息全攻略  Laravel如何优化应用性能?(缓存和优化命令)  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  如何注册花生壳免费域名并搭建个人网站?  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  详解Android中Activity的四大启动模式实验简述  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  中山网站制作网页,中山新生登记系统登记流程?  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  如何选择PHP开源工具快速搭建网站?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  javascript日期怎么处理_如何格式化输出  海南网站制作公司有哪些,海口网是哪家的?  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  如何在IIS服务器上快速部署高效网站?  如何为不同团队 ID 动态生成多个独立按钮  如何快速生成橙子建站落地页链接?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  如何用好域名打造高点击率的自主建站?  jQuery中的100个技巧汇总  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  创业网站制作流程,创业网站可靠吗?  Angular 表单中正确绑定输入值以确保提交与验证正常工作  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  如何为不同团队 ID 动态生成多个非值班状态按钮  如何为不同团队 ID 动态生成多个“认领值班”按钮  独立制作一个网站多少钱,建立网站需要花多少钱?  原生JS实现图片轮播切换效果  香港网站服务器数量如何影响SEO优化效果?  UC浏览器如何设置启动页 UC浏览器启动页设置方法  实例解析Array和String方法  详解vue.js组件化开发实践  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】