我正在尝试为nginx设置一个自动的站点向下页面。 到目前为止,我有这样的:
location / { try_files /sitedown.html @myapp; } location @myapp { ... }
这足够好用了:如果sitedown.html存在,那么它就会起作用,否则它会为应用程序提供服务。 但是,我想要做的是对Ajax请求做出不同的响应,以免错误输出javascript。 我相信,使用重写模块,我可以做一些事情,如if ($http_x_requested_with = XMLHttpRequest) {但是我不清楚如何使用它来做我想做的事情。
我想要那个头来的请求返回一个简单的JSON响应,如"sitedown"与适当的JSON编docker。 除此之外,最好能返回一个javascript可以响应的503响应代码。
如果您的客户端应用程序运行良好,它将在AJAX请求中设置Accept:标头,以便服务器知道预期会有JSON响应。 你可以使用这样的东西:
location / { set $downfile sitedown.html; if ($http_accept ~* application/json) { set $downfile sitedown.js; } try_files $downfile @myapp; }