我正在尝试从同一个 EC2 实例提供 API 和前端静态站点。我使用 nginx 和我的服务器块,如下所示,API 位于端口 8001 中,静态文件要提供到/sub/
:
server_name abc.def.com www.abc.def.com;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8001/;
}
location /sub/ {
alias /var/www/subweb/;
index index.html;
}
索引.html
<script src="/vendor.aea0bbda027e3c98f5c1.js"></script>
然而发生的事情是我的索引.html尝试从根目录获取资源(javascript 文件),而不是/子/。
我该如何修复它以便它指向正确的位置?
*更新 - 根据建议,我已经切换了位置的顺序,但它仍然没有按预期工作:
server_name abc.def.com www.abc.def.com;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location /sub/ {
alias /var/www/subweb/;
index index.html;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8001/;
}
答案1
更改位置的顺序。