博客
关于我
Nginx从入门到精通
阅读量:791 次
发布时间:2023-02-15

本文共 2510 字,大约阅读时间需要 8 分钟。

Nginx与负载均衡实战总结

第一章:Nginx概述

当访问量急剧增加时,单一服务器往往难以承受如此大的压力。这个时候,多台服务器的session如何处理与统一呢?迫切需要中间件包一层。总的服务器(Nginx)起到代理的作用!!!所谓代理服务器访问,叫做反向代理。

然而,当服务器的内存资源不一致时,例如64G内存的服务器被大量访问,而8G内存的服务器访问量较少,就需要用到Nginx的负载均衡功能。没有什么是加一层解决不了的,如果有就再加一层!!!!!!!!!!!!!

Nginx是一个高性能的HTTP反向代理Web服务器。它占用内存小仅1M,并发能力强,能够处理5万个并发连接数的响应,牛批!

第二章:正反向代理

访问国外服务器特别慢,谷歌下载东西特别慢连接VPN、翻墙软件,先从访问代理软件香港---香港访问国外服务器,然后再返回。这就叫做"正向代理"。代理的是客户端!!!!!!!!!!!!客户端1/2/3---VPN-----云----服务器

反向代理是代理服务器!!!!!!!!!!!!客户端---云---Nginx---服务器1/2/3

第三章:负载均衡

负载均衡的实现方式有多种,最常见的有以下几种:

  • 轮询:轮流来
  • 加权轮询:权重越高,访问的可能性越大
  • IP Hash:根据IP地址进行分配,但存在一定风险
  • 动静分离:静态资源从Nginx返回,感觉用处不大
  • 第四章:Nginx安装

    Windows安装

    解压即可使用,路径为:C:\IT\Nginx\nginx-1.22.1运行命令:cd C:\IT\Nginx\nginx-1.22.1 && nginx.exe启动访问localhost即可

    Linux安装

    前置准备:

    yum install gcc-c++yum install -y pcre pcre-develyum install -y zlib zlib-develyum install -y openssl openssl-devel

    安装命令:

    wget http://nginx.org/download/nginx-1.13.7.tar.gztar -xvf nginx-1.13.7.tar.gzcd /opt/nginx/nginx-1.13.7/./configuremake

    如果安装失败,请检查前置依赖是否安装成功。若仍报错:

    vim src/os/unix/ngx_user.c注释掉=~salt[0];

    若仍然报错:

    vim objs/Makefile删除里面的-Werrormake make install

    查找Nginx安装目录:whereis nginx

    启动命令:

    ./nginx -s quit  # 停止./nginx -s stop  # 停止./nginx -s reload  # 重载

    查看进程:

    ps -ef | grep nginxkill -9  # 停止

    开机自启动:

    vim /etc/rc.local# 最底部增加:/usr/local/nginx/sbin/nginx

    第五章:常用命令

  • Linux编辑配置文件:
  • vim /usr/local/nginx/conf/nginx.conf
    1. 重新加载配置:
    2. cd /usr/local/nginx/sbin/./nginx -s reload

      解决配置文件编码问题:

      使用notepad++编辑保存成UTF-8格式即可解决问题。
      1. 根据文件修改相关配置:
      2. vim /usr/local/nginx/conf/nginx.conf

        第六章:实战总结

        以Linux为例,按照以下步骤配置负载均衡:

      3. 安装两个服务(例如使用JDK配置Tomcat,或者写简单的Spring Boot应用)
      4. 启动两个服务,例如:
      5. http://192.168.0.105:9001/http://192.168.0.105:9002/
        1. 配置Nginx负载均衡:
        2. upstream wdfgdzx {    server 192.168.0.105:9001 weight=1;    server 192.168.0.105:9002 weight=2;}
          1. 配置反向代理:
          2. location / {    proxy_pass http://wdfgdzx;}
            1. 使配置生效:
            2. cd /usr/local/nginx/sbin/./nginx -s reload
              1. 测试访问:
              2. http://192.168.0.105/port

                会显示9001或9002,负载均衡效果良好。

                1. 高级配置:
                2. upstream wdfgdzx {    server wdfgdzx.top:8080 weight=3;}

                  验证域名访问:

                  http://wdfgdzx.top:8080/port

                  支持公网IP和域名访问,非常实用。

                  1. 动静分离:
                  2. location / {    root /root/site/white/dist;    index index.html index.htm;    try_files $uri $uri/ /index.html;}

                    适用于前后端分离,减轻后端服务器负载。

                    第七章:前端部署

                  3. 打包:
                  4. npm run build
                    1. 部署静态服务器:
                    2. npm install -g static-serverstatic-server upload dist
                      1. 配置Nginx反向代理:
                      2. location / {    root /root/site/UserInterface/dist;    index index.html index.htm;    try_files $uri $uri/ /index.html;}
                        1. 配置用户:
                        2. user root;
                          1. 重启Nginx:
                          2. cd /usr/local/nginx/sbin/./nginx -s reload
                            1. 查看Nginx版本:
                            2. cat /etc/redhat-release

                              这样就完成了前端部署,静态资源由Nginx代理,后端只需部署服务即可。

    转载地址:http://uhcfk.baihongyu.com/

    你可能感兴趣的文章
    NeurIPS(神经信息处理系统大会)-ChatGPT4o作答
    查看>>
    neuroph轻量级神经网络框架
    查看>>
    Neutron系列 : Neutron OVS OpenFlow 流表 和 L2 Population(7)
    查看>>
    new Blob()实现不同类型的文件下载功能
    查看>>
    New Concept English three (35)
    查看>>
    NEW DATE()之参数传递
    查看>>
    New Journey--工作五年所思所感小记
    查看>>
    new Queue(REGISTER_DELAY_QUEUE, true, false, false, params)
    查看>>
    New Relic——手机应用app开发达人的福利立即就到啦!
    查看>>
    new work
    查看>>
    new 一个button 然后dispose,最后这个button是null吗???
    查看>>
    NewspaceGPT的故事续写能力太强了
    查看>>
    NewspaceGPT绘制时序图
    查看>>
    NewspaceGPT绘制类图
    查看>>
    new一个对象的过程
    查看>>
    new和delete用法小结
    查看>>
    new对象时,JVM内部究竟藏了什么小秘密?
    查看>>
    new操作符的实现原理
    查看>>
    Next.js React Server Components 教程
    查看>>
    NextGen Mirth Connect XStream反序列化远程代码执行漏洞(CVE-2023-43208)
    查看>>