Montāžas valodas apmācība

Man ir tiešraide Django vietnē, kurā darbojas ieroči, nginx, supervizors. Mēģinu īstenot šeit atrastos ieteikumus, lai palielinātu lapas ātruma rādītāju, izmantojot nzx failu gzip. Iegūtais konfigurācijas fails ir šāds:

upstream app_server_wsgiapp { server 127.0.0.1:8000 fail_timeout=0; } server { listen 80; server_name www.example.com; return 301 https://www.example.com$request_uri; } server { server_name www.example.com; listen 443 ssl; if ($host = 'example.com') { return 301 https://www.example.com$request_uri; } ssl_certificate /etc/nginx/example/example.crt; ssl_certificate_key /etc/nginx/example/example.key; ssl_session_timeout 1d; ssl_session_cache shared: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:CAMELLIA: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 on; access_log /var/log/nginx/www.example.com.access.log; error_log /var/log/nginx/www.example.com.error.log info; keepalive_timeout 5; proxy_read_timeout 120s; # nginx serve up static and media files and never send to the WSGI server location /static { autoindex on; alias /path/to/static/files; } location /media { autoindex on; alias /path/to/media/files; } location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; if (!-f $request_filename) { proxy_pass http://app_server_wsgiapp; break; } } gzip on; gzip_comp_level 5; gzip_min_length 256; gzip_proxied any; gzip_vary on; gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; location ~* \.(jpg|jpeg|png|gif|ico|css|js|pdf)$ { expires 7d; } } 

Pēc nginx restartēšanas un vietnes atvēršanas pārlūkprogrammā viss, šķiet, ir kārtībā. Pēc tam es šeit pārbaudu lapas ātrumu, un mans rezultāts patiešām ir pieaudzis.

Problēma ir tāda, ka, ja es atgriezīšos savā vietnē un nospiedu Ctrl+F5 lai pilnībā atsvaidzinātu lapu un atkārtoti lejupielādētu statiskos failus (tikai, lai patiešām pārliecinātos, ka viss darbojas pareizi), statiskos failus nevar lejupielādēt. Es saņemu šādas pārlūka konsoles kļūdas:

GET https://www.example.com/path/to/static/files 404 (Not Found) etc... etc... 

Neviens no statiskajiem failiem netiek atrasts vai lejupielādēts. Ja es rediģēju nginx konfigurācijas failu un komentēju pēdējās 3 rindas un restartēju nginx, tad tas darbojas (pat nospiežot CTRL+F5), ti:

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

Tāpēc šķiet, ka jautājums ir kaut kas saistīts ar šīm 3 līnijām. Tomēr, komentējot šīs 3 rindiņas, es nesaņemu nevienu lapas ātruma pieaugumu, kas pārspēj mēģinājumu izmantot gzip.

location bloki nav piedeva. nginx izvēlas a location bloķēt, lai apstrādātu pieprasījumu. Pievienojot jaunu location bloķēt, jūs novēršat savu esošo location bloķē pieprasījuma apstrādi. Sīkāku informāciju skatiet šajā dokumentā.

Tā kā jums ir vairāki location bloki ar vairākiem alias direktīvām, var būt vienkāršāk izmantot globālu expires direktīvu, ko mantos jūsu esošais location bloki.

Piemēram:

map $request_uri $expires jpeg server { ... expires $expires; ... location ... { ... } ... } 

Plašāku informāciju skatiet šajā dokumentā.

strādāja par jums: Charles Robertson | Vēlies ar mums sazināties?

noderīga informācija