千家信息网

使用Nginx怎么实现图片服务器动态路由

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这期内容当中小编将会给大家带来有关使用Nginx怎么实现图片服务器动态路由,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。实现思路为了方便演示,这里用192.168.
千家信息网最后更新 2025年01月31日使用Nginx怎么实现图片服务器动态路由

这期内容当中小编将会给大家带来有关使用Nginx怎么实现图片服务器动态路由,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

实现思路

为了方便演示,这里用192.168.1.100替代 www.xxx.com

服务器存储地址访问地址
服务器A/usr/local/upload/192.168.1.100:8080/upload
服务器B/usr/local/upload/192.168.1.101:8080/upload
  • 仍旧访问原来的对外地址,http://192.168.1.100:8080/upload/demo.jpg;

  • 当原地址访问404时,自动访问服务器B对应的附件,URL地址不变;

步骤

1、启动服务器A的图片服务(192.168.1.100)

服务器A需安装Nginx,安装步骤略

server {    listen       8080;    server_name  localhost;    # 例如访问 http://192.168.1.100:8080/upload/demo.jpg    location ^~ /upload/ {        # 相当于访问 /usr/local/upload/demo.jpg        root /usr/local;    }        ...}

启动nginx,访问 http://192.168.1.100:8080/upload/demo.jpg,现在能正确访问服务器A的/usr/local/upload/demo.jpg

2、启动服务器B的图片服务(192.168.1.101)

服务器B同样安装Nginx,安装步骤略

# 服务器B的nginx配置server {    listen       8080;    server_name  localhost;    # 例如访问 http://192.168.1.101:8080/upload/demo.jpg    location ^~ /upload/ {        # 相当于访问 /usr/local/upload/demo.jpg        root /usr/local;    }        ...}

启动nginx,访问 http://192.168.1.101:8080/upload/demo.jpg,现在能正确访问服务器B的/usr/local/upload/demo.jpg

3、修改服务器A的nginx配置

服务器A中的nginx配置,如下

server {    listen       8080;    server_name  localhost;    # 例如访问 http://192.168.1.100:8080/upload/demo.jpg    location ^~ /upload/ {        # 相当于访问 /usr/local/upload/demo.jpg        root /usr/local;        # 如果访问不到,则尝试访问新的路径,$uri相当于/upload/demo.jpg,即将uri也传递至@new_uploads        try_files $uri @upload_B;    }        location @upload_B {        proxy_redirect off;        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        # 代理服务器B的地址        proxy_pass http://192.168.1.101:8080;    }}

重新启动服务器A的nginx,并删除服务器A对应的图片,访问 http://192.168.1.100:8080/upload/demo.jpg,会发现得到的是服务器B的图片,即成功实现图片的动态"切换",完成业务目标。

总结

  • 利用nginx的 try_files $uri @upload_B,实现内部重定向。

上述就是小编为大家分享的使用Nginx怎么实现图片服务器动态路由了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

0