我已经将 nginx 设置为在 apache 服务器上运行的不同 Web 应用程序的反向代理:
/var/www/app_abc
|-static
| |-app.js
| |-app.css
|-index.html
/var/www/app_xyz
|-static
| |-app.js
| |-app.css
|-index.html
app_abc 在 apache 虚拟主机端口 8081 上运行 app_xyz 在 apache 虚拟主机端口 8082 上运行
如果访问它们,它们在 Apache 中工作正常:
curl http://localhost:8081
curl http://localhost:8082
现在我只有一个域名:real-domain.com 我无法创建子域名,例如 abc.domain.com 或 xyz.domain.com
我有这样的 nginx 配置:
默认情况下,当请求时转到 app_abc 'http://www.real-domain.com':
location / {
proxy_pass http://localhost:8081
}
如果请求http://www.real-domain.com/xyz,转到 app_xyz
location ~ /xyz(.*) {
rewrite ^/xyz/?(.*) /$1 break;
proxy_pass http://localhost:8082;
}
对于静态文件
location ~ ^/static {
try_files $uri $uri/ /var/www/app_abc/$uri /var/www/app_xyz/$uri;
}
这里唯一的问题是这些请求:
static/app.js
static/app.cs
为了 ”http://www.real-domain.com/xyz“将返回 404
但适用于“http://www.real-domain.com/“
我的问题是:
如何为不同的应用程序提供静态文件,其中不同应用程序中的静态文件具有相同的相对路径?