配置我的Nginx以重写对特定端点的所有请求时,我遇到了一些麻烦。
我有一个在端口8080上运行的Nodejs应用程序,我想要所有的 http://SERVER_IP/ *要求展示http://127.0.0.1:8080/statuscheck
我尝试过(在/ etc / nginx / sites-available / default文件中):
MOVE_HOME
但我得到500.错误日志显示:
location / {
rewrite ^.*$ /statuscheck last;
proxy_pass http://127.0.0.1:8080;
}
感谢您的帮助。
答案 0 :(得分:1)
rewrite
指令中的正则表达式也匹配/statuscheck
,因此任何导致表达式被多次计算的重写或重定向都会导致循环。其中包括标记参数:last
,redirect
和permanent
。
但是,break
标志参数会停止处理rewrite
指令并继续处理当前位置中的URL。例如:
location / {
rewrite ^ /statuscheck break;
proxy_pass http://127.0.0.1:8080;
}
有关详细信息,请参阅this document。