【Nginx 开发】反向代理配置,负载均衡配置,动静分离配置

nginx 配置

反向代理

我们根据实例进行讲解,效果是通过在浏览器访问www.hlh.com,跳转到Linux系统的tomcat主页面中

第一步:在windows系统的host文件进行域名和ip对应关系的配置

在host文件中添加自己的地址映射
192.168.175.111 www.hlh.com

第二步:在nginx进行请求转发的配置(反向代理的配置)

txt 复制代码
    server {
       listen       80;
       server_name  192.168.75.135;

       #charset koi8-r;

       #access_log  logs/host.access.log  main;

       location / {
           root   html;
           proxy_pass http://127.0.0.1:8080;
           index  index.html index.htm;
       }

我们还可以及进行通过不同的访问路径进入到不同的tomcat服务器中

例如:访问http://127.0.0.1:9001/edu/,直接跳转到,127.0.0.1:8081

访问 http://127.0.0.1:9001/vod/,直接跳转到127.0.0.1:8082

仍然在配置文件中进行配置:

txt 复制代码
server{
       listen 9001;
       server_name localhost;
       location ~ /edu/ {
           proxy_pass http://localhost:8001;
       }
       location ~ /vod/ {
           proxy_pass http://localhost:8002; 
       }
}
  • location后的符号表达
    =:用于不含正则表达式的url前,要求请求字符串与url严格匹配,如果匹配成功,就挺停止继续向下的搜索并立即处理该请求
    ~:用于表示url包含正则表达式,并且区分大小写
    ~*:用于表示url包含正则表达式,并且不区分大小写
    ^~:用于不含正则表达式的url前,要求Nginx 服务器找到表示url和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location块中的正则url和请求字符串做匹配

配置负载均衡

访问同一个地址分配到不同的tomcat端口

txt 复制代码
http{
     upstream myserver{
         server 192.168.75.135:8080;
         server 192.168.75.135:8081 ;
     }
     server{
           location /{
                   proxy_pass http://myserver;
           }
     }
}
  • 复杂均衡的分配方式
  1. 轮询:每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能够自动剔除
  2. weight:代表权,默认为1,权重越高被分配的客户端越多
txt 复制代码
http{
     upstream myserver{
         server 192.168.75.135:8080 weight=1;
         server 192.168.75.135:8081 weight=1;
     }
     server{
           location /{
                   proxy_pass http://myserver;
           }
     }
}
  1. ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session问题
txt 复制代码
http{
     upstream myserver{
         ip_hash
         server 192.168.75.135:8080;
         server 192.168.75.135:8081;
     }
     server{
           location /{
                   proxy_pass http://myserver;
           }
     }
}
  1. fair(第三方):按照服务器的响应时间来分配,访问时间短的先行进行分配
txt 复制代码
http{
     upstream myserver{
         server 192.168.75.135:8080;
         server 192.168.75.135:8081;
         fair;
     }
     server{
           location /{
                   proxy_pass http://myserver;
           }
     }
}

配置动静分离

动静分离目前的两种方式:

  1. 把静态文件独立成单独的域名,放在独立的服务器上(目前的主流)
  2. 动态跟静态文件混合在一起发布,通过nginx来分开

举例访问/www和/image时访问nginx本地的静态资源

txt 复制代码
http{
     server{
           location /www/{
                   root /data/;
                   index index.html
           }
           location /image/{
                   root /data/;
                   autoindex on;
           }
     }
}

root 跟的是在nginx中静态资源所在的目录
autoindex on:表示展示的时候列出目录中所有的文件

相关推荐
雪落漂泊6 小时前
Liunux进程(七):程序控制篇(中)
linux·运维·windows
分布式存储与RustFS7 小时前
工作流脚本和依赖 JAR 散在各节点本地盘:用 DolphinScheduler 资源中心接到 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
分布式存储与RustFS1 天前
群晖 NAS 被 C3RB3R 锁了:本地备份一起被加密,RustFS 对象锁为什么删不掉
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
真好啊又活了一天1 天前
服务器和虚机配置IPV6
运维·服务器·github
zixu_star1 天前
定时任务是什么?从日常自动化到 AI 应用,软件如何自动执行任务?
运维·人工智能·自动化
AR-26710-1 天前
Linux Day33——定时任务+lvm
linux·运维
润滑卫士1 天前
液压系统工作粘度窗口等级选型:泵允许粘度范围与油温-粘度匹配计算
运维
Csvn1 天前
Nginx 配置语法与上下文:一次搞懂继承、变量与用 map 替掉 if
后端·nginx
每月一号准时摆烂1 天前
服务器运维笔记(一)——使用shell编写实时查看BMC功率的脚本
运维·服务器·笔记
时间售卖铺1 天前
Chrony与SSH实战:精准时间同步与安全远程登录
运维·安全·云原生·ssh