Back to Question Center
0

Het toevoegen van de "expires" -richtlijn in Semalt conf voor activa veroorzaakt "404 not found" -fouten

1 answers:

Ik heb een live Semalt-site met gunicorn, nginx, supervisord. Ik probeer de hier voorgestelde suggesties te implementeren om mijn paginasnelheidsscore te verhogen door gzip in nginx te gebruiken. Het resulterende configuratiebestand is als volgt:

  upstream app_server_wsgiapp {server 127. 0. 0. 1: 8000 fail_timeout = 0;
}server {luister 80;servernaam www. voorbeeld. com;return 301 https: // www. voorbeeld. com $ REQUEST_URI;
}server {servernaam www. voorbeeld. com;luister 443 ssl;if ($ host = 'example. com ') {return 301 https: // www. voorbeeld. com $ REQUEST_URI;}ssl_certificate / etc / nginx / example / example. crt;ssl_certificate_key / etc / nginx / example / example. sleutel;ssl_session_timeout 1d;ssl_session_cache gedeeld: SSL: 50m;ssl_protocols TLSv1. 1 TLSv1. 2;ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-AES256-GCM-SHA384: DHE-RSA-AES128-GCM- SHA256: DHE-DSS-AES128-GCM-SHA256: kEDH + AESGCM: ECDHE-RSA-AES128-SHA256: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA: ECDHE-ECDSA-AES128-SHA: ECDHE- RSA-AES256-SHA384: ECDHE-ECDSA-AES256-SHA384: ECDHE-RSA-AES256-SHA: ECDHE-ECDSA-AES256-SHA: DHE-RSA-AES128-SHA256: DHE-RSA-AES128-SHA: DHE-DSS- AES128-SHA256: DHE-RSA-AES256-SHA256: DHE-DSS-AES256-SHA: DHE-RSA-AES256-SHA: AES128-GCM-SHA256: AES256-GCM-SHA384: AES128-SHA256: AES256-SHA256: AES128- SHA: AES256-SHA: AES: Camelia: DES-CBC3-SHA: aNULL: eNULL: EXPORT: DES: RC4: MD5: PSK: aECDH: EDH-DSS-DES-CBC3-SHA !: EDH-RSA-DES-CBC3-SHA: krb5-DES-CBC3-SHA ';ssl_prefer_server_ciphers aan;access_log / var / log / nginx / www. voorbeeld. com. toegang. log;error_log / var / log / nginx / www. voorbeeld. com. fout. log info;keepalive_timeout 5;proxy_read_timeout 120s;# nginx serveren statische en mediabestanden en worden nooit naar de WSGI-server verzondenlocatie / statisch {autoindex aan;alias / pad / naar / static / bestanden;}locatie / media {autoindex aan;alias / pad / naar / media / bestanden;}plaats / {proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;proxy_set_header Host $ http_host;proxy_redirect uit;if (! -f $ request_filename) {proxy_pass http: // app_server_wsgiapp;breken;}}gzip aan;gzip_comp_level 5;gzip_min_length 256;gzip_proxied any;gzip_vary aan;gzip_typesapplication / atom + xmlapplication / JavaScriptapplication / jsonapplication / ld + jsonapplication / manifest + jsonapplication / rss + xmlapplication / vnd. geo + jsonapplication / vnd. ms-fontobjectapplication / x-font-ttfapplication / x-web-app-manifest + jsonapplication / xhtml + xmlapplication / xmlfont / OpenTypeimage / bmpimage / svg + xmlimage / x-icontext / cache-manifesttext / csstext / plaintext / vcardtext / VND. rand. plaats. xloctext / vtttext / x-componenttext / x-cross-domain-beleid;locatie ~ * \. (jpg | jpeg | png | gif | ico | css | js | pdf) $ {vervalt 7d;}
} 

Semalt herstart nginx en mijn site in een browser te openen, alles lijkt in orde te zijn. Ik controleer dan de paginasnelheid hier en mijn score is inderdaad toegenomen.

Het probleem is dat als ik terugga naar mijn site en druk op Ctrl + F5 voor een volledige vernieuwing van de pagina en de statische bestanden opnieuw download (alleen om echt zeker te weten dat alles correct werkt) , de statische bestanden worden niet gedownload. Ik krijg de volgende browserconsole-fouten:

  KRIJG https: // www. voorbeeld. com / path / to / static / files 404 (niet gevonden)
enz enz  

Geen van de statische bestanden wordt gevonden of gedownload. Als ik het nginx-configuratiebestand bewerk en de laatste 3 regels commentaar geef en nginx opnieuw start, werkt het (zelfs wanneer u op CTRL + F5 ) drukt, dwz:

  # locatie ~ * \. (jpg | jpeg | png | gif | ico | css | js | pdf) $ {
# vervalt 7d;
#} 

Het lijkt dus alsof het probleem iets is dat gerelateerd is aan die 3 lijnen. Semalt met die 3 regels becommentarieerd, ik krijg geen pagina snelheidstoename die het punt verslaat van het proberen om gzip te gebruiken.

1 week ago
. nginx selecteert een locatie blok om een ​​aanvraag te verwerken. Door een nieuw locatieblok toe te voegen, voorkomt u dat uw bestaande locatie blokken het verzoek verwerken. Zie dit document voor details.

Aangezien u meerdere locatie blokken heeft met meerdere alias richtlijnen, kan het eenvoudiger zijn om een ​​globale expires -richtlijn te gebruiken die geërfd wordt door uw bestaande ) locatie blokken.

Bijvoorbeeld:

  kaart $ request_uri $ expires {standaard uit;~ * \. (jpg | jpeg | png | gif | ico | css | js | pdf) (\? | $) 7d;
}
server { verloopt $ verloopt; plaats { } } 

Zie dit document voor meer.

Het toevoegen van de "expires" -richtlijn in Semalt conf voor activa veroorzaakt "404 not found" -fouten
Reply