首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSS/JS文件没有通过Nginx从服务器显示到反向代理OctoPrint服务器。

CSS/JS文件没有通过Nginx从服务器显示到反向代理OctoPrint服务器。
EN

Stack Overflow用户
提问于 2017-11-19 14:42:58
回答 1查看 10.2K关注 0票数 1

我在https://example.com网站上运行了一台Nginx服务器。我试图通过反向代理(从OctoPi)在我拥有/管理的另一个远程服务器上(从http://1.2.3.4:1988服务)服务一个页面。

我可以在https://example.com/foo/上提供主页,但是css和js文件没有加载。控制台显示像https://example.com/foo/static/webassets/packed_libs.css这样的文件出现了一个404错误。如果我访问https://1.2.3.4:1988/foo/static/webassets/packed_libs.css,我可以读取css文件。

我确信/etc/nginx/sites-available/default中的nginx配置文件可能是fubar编辑的,但我似乎不知道在哪里,因为错误或访问日志暴露了任何错误,OctoPi上的haproxy日志也没有。

Nginx配置文件:

代码语言:javascript
复制
server {
    listen 80;
    server_name www.example.com;
    listen [::]:80 default_server;
    return  301 https://example.com$request_uri;
}

server {
    listen 443 ssl;
    server_name www.example.com;
    return 301 https://example.com$request_uri;
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; 

    # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
    server_name www.example.com;
    return 301 https://example.com$request_uri;
}

server{
    listen 80;
    server_name example.com;
    root /var/www/example.com/public;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
        include /etc/nginx/mime.types;
        default_type application/octet-stream;
    }

    location ^~ /foo {
        # Redirecting via reverse proxy to OctoPi server
        proxy_pass http://1.2.3.4:1988/;
        proxy_redirect default;
        proxy_set_header Host $host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        include mime.types;
        sub_filter '/i18n/' '/foo/i18n/';
        sub_filter '/static/'  '/foo/static/';
        sub_filter_once off;
    }

    location /foo/sockjs {
        proxy_pass http://1.2.3.4:1988/;
        proxy_http_version 1.1;
        proxy_redirect off;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;

    location = /50x.html {
        root /var/www/example.com/public;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;

        # With php7.0-cgi alone:
        # fastcgi_pass 127.0.0.1:9000;
        # With php7.0-fpm:
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
    if ($scheme != "https") {
        return 301 https://$host$request_uri;
    } # managed by Certbot

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-05 03:04:56

我在这里找到了我问题的文档:https://github.com/foosel/OctoPrint/wiki/Reverse-proxy-configuration-examples

我将包括为子孙后代准备的相关部分:

代码语言:javascript
复制
server {
            listen       80;
            server_name  localhost;

            location /foo {
                proxy_pass http://1.2.3.4:1988; # NO trailing slash here!
                proxy_set_header Host $http_host;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Scheme $scheme;

                client_max_body_size 0;    
            }
            ...

但是,由于我更熟悉Apache的设置和用法,所以我已经搬回Apache了。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47378119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档