网站几乎完全包含在一个html文件中。所有其他文件也可能是图像,css或javascripts以及可能的json文件。
server {
listen 80;
server_name git.vosnax.ru;
location / {
try_files $uri "/index.html";
root /home/sybiam/prod/blog;
index index.html;
}
}
这是我目前的配置,但这并不完美。它会将每个请求重定向到index.html,除非文件存在,这是正常的。
现在,我想为网站添加一些持久性。就像使用非常简单的auth从服务器保存和加载jsons一样,它支持GET和POST。这意味着我无法使用JSONP
。
问题仅在于如何配置nginx以将所有请求转发给我的金字塔Web服务器以及其他所有指向index.html的请求,除非文件存在。
我可能在不同的域上托管服务器以简化操作但我不知道如何处理跨域请求。旧IE上不支持/api/*
。
编辑:
显然,查询args始终可用,所以它不再是问题。我的javascript在加载时覆盖了路径名并删除了CORS
。
答案 0 :(得分:2)
index.html的所有内容除非文件存在,否则try_files
中的location /
位已经存在
只将/api/*
个请求传递给您的其他服务器,您将以下内容添加到服务器块中(作为location /
- 块的兄弟):
location /api/ {
proxy_pass http://address_of_server_your_passing_to;
}
如果您想了解有关多个位置块时请求如何匹配的更多信息,请参阅the documentation