Mam dwa serwery skonfigurowane prawie dokładnie tak samo. Jeden to mój serwer produkcyjny, a drugi to mój serwer pomostowy. Konfiguracja nginx na obu są kopiami siebie, z wyjątkiem nazwy serwera (i gdziekolwiek indziej używam nazwy serwera)
Oto konfiguracja z mojego serwera pomostowego.
server {
listen 80;
server_name *.johnvarghese.info johnvarghese.info;
return 301 https://$host$request_uri;
}
server {
listen 443;
ssl on;
ssl_certificate /etc/johnvarghese.info.ssl/star.johnvarghese.info.bundle.crt;
ssl_certificate_key /etc/johnvarghese.info.ssl/star.johnvarghese.info.key;
server_name support.johnvarghese.info;
return 301 "$scheme://johnvarghese.info/support${request_uri}";
}
server {
listen 443;
ssl on;
ssl_certificate /etc/johnvarghese.info.ssl/star.johnvarghese.info.bundle.crt;
ssl_certificate_key /etc/johnvarghese.info.ssl/star.johnvarghese.info.key;
server_name *.johnvarghese.info johnvarghese.info;
passenger_ruby /usr/local/rvm/gems/ruby-2.1.0/wrappers/ruby;
passenger_enabled on;
root /var/www/johnvarghese.info/current/public;
location ~* \.(mp4|ogg|webm)$ {
expires 10d;
add_header Cache-Control "max-age=864000";
}
}
Serwer pomostowy nazywa się johnvarghese.info. Na serwerze produkcyjnym zamieniłem wszystkie wystąpienia johnvarghese.info na servername.com.
Linie, które mnie interesują, to ostatnie trzy linie w konfiguracji - chcę tylko buforować plik wideo webm (który powtarzam odtwarzając w pętli). Działa idealnie na serwerze pomostowym. Po pobraniu wideo mogę wyłączyć sieć bezprzewodową na moim laptopie, a wideo ciągle się zapętla i nie jest wymagane dalsze pobieranie. Kod odpowiedzi w konsoli to 206 za każdym razem, zaczynając od drugiego razu. Serwer nie jest już trafiany.
Na serwerze produkcyjnym serwer jest trafiany za każdym razem, gdy wideo jest zapętlone. Kod odpowiedzi to 304 (niezmodyfikowany). Jeśli włączę sieć bezprzewodową na swoim laptopie, po zakończeniu odtwarzania wideo zostanie zatrzymane, ponieważ nie będzie można pobrać go ponownie w celu powtórzenia.
Dlaczego ta sama konfiguracja
location ~* \.(mp4|ogg|webm)$ {
expires 10d;
add_header Cache-Control "max-age=864000";
}
pracować inaczej na tych podobnie skonfigurowanych serwerach? Chcę, aby serwer produkcyjny działał tak samo jak serwer pomostowy. Co powinienem zrobić?
Dzięki