当前位置: 代码网 > 服务器>服务器>Linux > Nginx反向代理静态文件并修改路径方式

Nginx反向代理静态文件并修改路径方式

2025年03月19日 Linux 我要评论
nginx反向代理静态文件并修改路径nginx 配置想要将 /a/b/ 的请求代理到本地目录 /abc/ 下的文件。可以在 nginx 配置中使用 alias 指令来指定一个本地路径作为代理目标。se

nginx反向代理静态文件并修改路径

nginx 配置想要将 /a/b/ 的请求代理到本地目录 /abc/ 下的文件。可以在 nginx 配置中使用 alias 指令来指定一个本地路径作为代理目标。

server {
    listen 8080;

    location / {
        proxy_pass http://192.168.1.100:8080;
    }

    location /a/b/ {
        alias /abc/;
        try_files $uri $uri/ /index.html;
    }
}

解释和注意事项:

  • location /a/b/:这里配置了一个 location 块,用于匹配以 /a/b/ 开头的请求。
  • alias /abc/;:使用 alias 指令指定了本地路径 /abc/ 作为代理目标。当匹配到 /a/b/ 的请求时,nginx 将会将这些请求映射到本地目录 /abc/
  • try_files $uri $uri/ /index.html;:这里使用了 try_files 指令,用于尝试查找对应的文件。如果请求的文件不存在,则会返回 /index.html

注意:

  • 在使用 alias 指令时,结尾的斜杠 / 是重要的,确保路径设置正确。
  • 需要确保 nginx 对 /a/b/ 的访问权限和路径配置正确,以及本地目录 /abc/ 中包含所需的静态文件或资源。
  • 配置完成后,重启或重新加载 nginx,然后尝试访问 /a/b/ 下的资源,它应该会被代理到本地目录 /abc/ 中的对应文件。

nginx反向代理+路径重写 配置

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        # 访问方式:http://127.0.0.1/1/ng1/ --> http://127.0.0.1:82 这里和方式二主要区别在于rewrite和proxy_pass的位置。
        location ~ /ng1/ {
            proxy_pass http://127.0.0.1:81;
            rewrite "^/(.*)/ng1\/(.*)$" /$2 break;
        }
        # 访问方式:http://127.0.0.1/1/ng2/ --> http://127.0.0.1:82
        location ~ /ng2/ {
            rewrite "^/(.*)/ng2/(.*)$" /$2 break;
            proxy_pass http://127.0.0.1:82;
            
        }
        # 访问方式:http://127.0.0.1/ng3/ --> http://127.0.0.1:83
        location /ng3/ {
            rewrite ^/ng3/(.*)$ /$1 break;
            proxy_pass http://127.0.0.1:83;
        }
        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

  • Linux书签上下移动方式

    Linux书签上下移动方式

    linux书签上下移动步骤读书签文件,分割到qstringlist,点击右键菜单获取序号,交换序号,写书签文件。qstringlist.swap(int, in... [阅读全文]
  • Linux深入理解进程和文件及内存管理问题

    Linux深入理解进程和文件及内存管理问题

    一、重谈linux下一切皆文件我们说了一切皆文件,对于操作系统来说,磁盘键盘显示屏等等一系列的外设都是文件。举一个访问外设的例子:进程运行,从进程pcb中找到指... [阅读全文]
  • Linux中的日志插件详解

    一、日志文件的重要性故障排查与问题定位快速发现问题:日志能够实时记录系统运行过程中的各种事件和状态信息,当系统出现故障或异常时,通过查看日志可以快速察觉到问题的发生,例如,服务器突…

    2025年03月20日 服务器
  • Linux systemV消息队列和信号量详解

    Linux systemV消息队列和信号量详解

    一、消息队列1、实现原理操作系统在内核建立一个队列,通信的两个进程ab以数据块的形式将需要发送的数据pushback到队列中,数据块是一个结构体,其中有字段标识... [阅读全文]
  • Linux中的进程间通信之匿名管道解读

    一、基本概念我们知道多个进程之间是互相独立的,但是有时候我们需要将一个进程的数据传递到另一个进程,实现数据传输的效果,有的时候多个进程之间要共享同样的资源,有的时候一个进程要对其他…

    2025年03月20日 服务器
  • Linux中的缓冲区和文件系统详解

    一、file结构1、fdfile是在c中封装起来的一个结构体,那我们访问文件的时候都是通过fd访问的,自然在file中是封装了fd的,file结构体中,int _file存放的就是…

    2025年03月20日 服务器

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com