
次のように、ドメインのサブディレクトリ上の別のドキュメント ルートから別のソフトウェアを提供するように nginx を構成する必要があります。
http://example.com/... - main site from /var/www/main
http://example.com/docs/ - an independent application from /var/www/app
proxy_pass や alias など、さまざまな方法を試しましたが、どれもうまくいきませんでした。最新の構成は次のとおりです。
server {
listen 80;
server_name example.com;
root /var/www/main;
index index.html;
location /docs/ {
root /var/www/app;
}
}
アクセスしようとするとhttp://example.com/docs/error_log に 404 Not Found エラーと次のメッセージが表示されます。
*1 「/var/www/app/docs/index.html」が見つかりません(2:そのようなファイルまたはディレクトリはありません
/var/www/app/docs/index.html
したがって、の代わりに開こうとします/var/www/app/index.html
。
rewrite
これは、次の 方法で修正できることがわかっていますrewrite ^/docs/(.*)$ /$1 last;
。これは私の場合は機能しますが、すべてのアセットへのすべての相対リンクも書き換えられるため、そうではありません。
アップデート:
1) 私の問題点alias
:
location /docs/ {
autoindex on;
alias /var/www/app/;
}
「/var/www/app/index.html」が見つかりません (2: そのようなファイルまたはディレクトリはありません)
2) proxy_pass の問題:
location /docs/ {
proxy_pass: http://127.0.0.1:8080;
}
...
server {
listen 8080;
server_name localhost;
root /var/www/app;
index index.html;
}
エラーは次のとおりです:
/var/www/app/docs/index.html" is not found (2: No such file or directory)