nginx 不接收除硬刷新之外的请求
nginx does not receive requests except for hard refresh
在执行 tail -f /var/log/nginx/access.log
时,我注意到以下几点:
- 当用户在任何页面上并从地址栏点击 Enter 时,
nginx
没有收到任何请求,浏览器直接从其缓存中加载
- 当用户执行硬刷新时(Windows 上的 F5,Mac 上的 Cmd+R),
nginx
确实收到了请求
- 当用户访问
/login
然后重定向到 /
时,nginx
确实收到了 /login
的请求,但 没有收到 对于 /
,因此浏览器从其缓存中呈现 /
,忽略用户自 以来已登录的事实
简而言之,除了用户执行的硬刷新外,浏览器根本不会向已访问的页面发送任何请求。
我如何确保 nginx
收到所有请求,因为页面是动态生成的,例如,主页内容会根据用户的状态而变化?
在 digital ocean
的 Ubuntu 15.10 x64
上使用 nginx 1.9.3
和 http
在 http { }
中将 expires 0;
添加到 nginx.conf
就成功了。
在执行 tail -f /var/log/nginx/access.log
时,我注意到以下几点:
- 当用户在任何页面上并从地址栏点击 Enter 时,
nginx
没有收到任何请求,浏览器直接从其缓存中加载 - 当用户执行硬刷新时(Windows 上的 F5,Mac 上的 Cmd+R),
nginx
确实收到了请求 - 当用户访问
/login
然后重定向到/
时,nginx
确实收到了/login
的请求,但 没有收到 对于/
,因此浏览器从其缓存中呈现/
,忽略用户自 以来已登录的事实
简而言之,除了用户执行的硬刷新外,浏览器根本不会向已访问的页面发送任何请求。
我如何确保 nginx
收到所有请求,因为页面是动态生成的,例如,主页内容会根据用户的状态而变化?
在 digital ocean
的 Ubuntu 15.10 x64
上使用 nginx 1.9.3
和 http
在 http { }
中将 expires 0;
添加到 nginx.conf
就成功了。