2017-11-19 1 views
0

Ich habe einen Nginx-Server auf der Website https://example.com ausgeführt. Ich versuche, eine Seite (von einem OctoPi) über Reverseproxy auf einem anderen Remoteserver zu bedienen, den ich besitze/admin, gedient bei .CSS/JS-Dateien, die nicht vom Server zum Reverse-Proxy-Server OctoPrint über Nginx zeigen

Ich kann die Hauptseite bei https://example.com/foo/, aber die CSS-und JS-Dateien werden nicht geladen. Die Konsole zeigt, dass Dateien wie https://example.com/foo/static/webassets/packed_libs.css einen 404-Fehler geben. Wenn ich auf https://1.2.3.4:1988/foo/static/webassets/packed_libs.css zugreife kann ich die CSS-Datei lesen.

Ich bin sicher, dass meine nginx config-Datei in /etc/nginx/sites-available/default ist vermutlich fubar-ed, aber ich kann nicht herausfinden, wo, da der Fehler noch Zugriffsprotokolle nichts falsch offenbaren, noch die Haproxy loggt auf dem OctoPi.

Nginx Konfigurationsdatei:

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 

} 

Antwort

0

fand ich die Dokumentation auf meine Frage hier: https://github.com/foosel/OctoPrint/wiki/Reverse-proxy-configuration-examples

Ich werde den entsprechenden Teil für die Nachwelt sind:

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;  
      } 
      ... 

Aber ich Ich bin seither zu Apache zurückgekehrt, da ich mit dessen Einrichtung und Verwendung besser vertraut bin.

Verwandte Themen