抬头仰望星空,是否能发现自己的渺小。

伪斜杠青年

人们总是混淆了欲望和理想

Ngnix 反向代理 Docker 容器后资源 404 的问题

注:以下所有 container_name:port 字段指带容器名以及其端口。

代理容器嘛,简单!对于一般网上找到的资料来说就下面这几行代码:

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_pass http://container_name:port;
    }

但是往往自己的配置还会再加上一些规则,比如针对特定类型的文件:

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
        expires 30d;
        access_log off;
    }
    
    location ~ .*\.(js|css)?$ {
        expires 7d;
        access_log off;
    }

那么这时候这些后缀的文件就 404 跑不掉啦~ 解决办法就是都加上 proxy_pass 字段,像这样:

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
        proxy_pass http://container_name:port;
        expires 30d;
        access_log off;
    }
    
    location ~ .*\.(js|css)?$ {
        proxy_pass http://container_name:port;
        expires 7d;
        access_log off;
    }

道理也很简单,都是路径匹配,一个代理了,其他怎么能不代理呢,不代理自然就找不到相关的资源路径了就会发生404。

以上。


本站由以下主机服务商提供服务支持:

0条评论

发表评论