我有一个在EC2实例上运行的nginx配置,具有以下规则:
server {
listen 80;
server_name *****.com.ar www.*****.com.ar;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
location ~ ^/(company|portfolio|services|contact|)(/|$) {
proxy_pass "http://privateip:80";
}
location / {
proxy_pass "http://privateip:3000";
}
}
如您所见,如果斜杠后的第一个单词与某些单词声明(公司,产品组合,服务)匹配,则第一个规则重定向到端口 80 上的私有ip 等),或者如果在斜杠后不存在一个单词。
另一方面,如果在斜杠(例如/ something)之后输入一个单词,nginx重定向到相同的IP,但在端口 3000 上。
问题是以下原因:
当我访问该站点时(在斜杠后面没有输入任何文字),我可以正确重定向到端口 80 上的私有ip ,但是问题是资产无法加载!。 如果我转到(Google Chrome开发者工具的)“网络”标签,则可以看到资产在尝试加载时会得到nginx重定向(在端口 3000 上),因为请求以类似< strong> / js,/ styles,/ images 或简称为 / assets 。
如何通过nginx代理正确传递或设置资产?还是在遇到位置匹配时如何配置nginx从应用程序加载所有内容?因为我也会在应用程序的路由/路径中遇到这个问题...谢谢!