我想使 nginx.conf : - 在不同的端口上发布 proxy_pass - 在 get 时返回带有 index.html 的静态文件(提供 SPA)
我该怎么做呢,目前我有:
nginx.conf:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
error_log /var/log/nginx/error.log debug;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream nodejs {
server 127.0.0.1:3001;
}
server {
listen 3000;
charset utf-8;
client_max_body_size 5M;
location / {
if ($request_method = POST ) {
proxy_pass http://nodejs;
}
if ($request_method = GET ) {
root /usr/src/app;
try_files $uri /index.html;
}
}
}
}
nginx:[emerg] /etc/nginx/nginx.conf:41 中不允许使用“try_files”指令
答案1
去引用nginx HTTP 服务器,第四版(Packt 出版):
你可能会想:
location
与块相比,使用块有哪些优势if
?(...) [主要区别在于可以在任一块内使用的指令。有些指令可以插入到块中if
,有些则不能;相反,几乎所有指令都允许在块内使用location
。
因此,我担心这是那些在块中允许但不能在块中try_files
的指令之一。location
if
至于如何解决这个问题并做你想做的事情,我(还)没有答案。