我有一个 nginx 代理服务器,将 api 服务器连接到我的 ember 客户端。这工作没有任何问题。
但是当我点击刷新按钮时,除了根路由之外的任何路由,浏览器都会点击代理并尝试提供指定的 url。例如,myapp.com/user 在代理服务器中点击用户路由,我得到响应未找到 404。
我对 nginx 很陌生,所以我不完全知道如何配置此设置。这是我的代理配置:
upstream querybuilder {
# Path to Puma SOCK file, as defined previously
server unix:/home/deploy/essence/shared/sockets/puma.sock fail_timeout=0;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name essence;
root /home/deploy/essence/public;
try_files $uri/index.html $uri @querybuilder;
location @querybuilder {
proxy_pass http://localhost:2300;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
# try_files /fake_file @querybuilder;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
api 服务器是一个 ruby/hanami 应用程序。但这没有问题,所以我认为我不必重新配置它。
也许这很重要:我们使用 ember simple auth 进行身份验证。