If-Modified-Since для статического html
Dmitriy Loskutov
nginx-forum at nginx.us
Wed Oct 3 10:09:27 UTC 2012
Генерирую фоновым процессом (из cron, НЕ из php-fpm) статический html. Есть
также статический JS, обычный, созданный в vim.
Для js If-Modified-Since работает, для статического html - нет.
Вот конфиг (уже слегка замученный в целях отладки):
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request"
'
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 78.24.217.105:80;
server_name poisk-znakomstv.ru;
root /var/www/lpsearch/site;
charset utf-8;
if_modified_since exact;
location ~ \.php$ { deny all; }
location /maintenance/ { deny all; }
location /xml/ { deny all; }
location ~ ^\.git { deny all; }
location ~ ^/$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME
$document_root/index.php;
fastcgi_pass 127.0.0.1:9000;
}
location / {
try_files $uri $uri/ @proxy;
}
location /users/ {
root /var/www/lpsearch/site;
}
location @proxy {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME
$document_root/index.php;
fastcgi_pass 127.0.0.1:9000;
}
include deny_htaccess.conf;
}
}
Вот реальные примеры выдачи из telnet:
GET /userlist/page1.html HTTP/1.0
Host: poisk-znakomstv.ru
If-Modified-Since: Wed, 03 Oct 2012 09:51:30 GMT
HTTP/1.1 200 OK
Server: nginx/1.2.3
Date: Wed, 03 Oct 2012 09:57:38 GMT
Content-Type: text/html; charset=utf-8
Connection: close
X-Powered-By: PHP/5.4.5
Но при этом:
GET /client/main.js HTTP/1.0
Host: poisk-znakomstv.ru
If-Modified-Since: Wed, 03 Oct 2012 07:51:36 GMT
HTTP/1.1 200 OK
Server: nginx/1.2.3
Date: Wed, 03 Oct 2012 09:58:05 GMT
Content-Type: application/x-javascript; charset=utf-8
Content-Length: 12096
Last-Modified: Wed, 03 Oct 2012 06:51:36 GMT
Connection: close
Accept-Ranges: bytes
Что у меня в правилах неправильно? Как сделать чтобы не было перенаправления
статического html на php-fpm ?
fastcgi_params и deny_htaccess.conf не содержат ничего касательно
перенаправления html на php-fpm.
freebsd, nginx -v
nginx version: nginx/1.2.3
В access.log только строка
[03/Oct/2012:14:03:04 +0400] "GET /userlist/page1.html HTTP/1.0" 200 46134
"-" "-" "-"
Ошибки в error.log нет. Статические файлы есть:
ls -l /var/www/lpsearch/site/users/page1.html
-rw-r--r-- 1 www www 46135 Jan 1 2012
/var/www/lpsearch/site/users/page1.html
ls -l /var/www/lpsearch/site/client/main.js
-rw-r--r-- 1 www www 12096 Oct 3 10:51
/var/www/lpsearch/site/client/main.js
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231349,231349#msg-231349
Подробная информация о списке рассылки nginx-ru