myapp
私は、顧客ごとに 1 つずつ、異なる物理ボックスに複数のインスタンスをデプロイしたいという名前の単一の django-admin アプリを持っています。ただし、それらすべてに同様のドメインからアクセスできるようにしたいと考えていますmydomain.com/customer1/myapp
。
私は特定のプロキシ設定をいじり、SOで提案された複数のことを試しましたが、私のユースケースに完全に適合するものはありません...両方についてほとんど知らず、途方に暮れていますnginx
!django
私の現在のnginx.confは次のとおりです。
server {
listen 80;
server_name myserver.com
location ^~ /static {
alias /path/to/static/files/;
}
# location / {
# proxy_pass http://127.0.0.1:8001;
# }
location ^~ /customer1/myapp/static {
alias /path/to/static/files/;
}
location /customer1/myapp {
rewrite ^/customer1/myapp/(/?)(.*) /$2 break;
proxy_pass http://127.0.0.1:8001;
}
}
経由で期待どおりにログイン画面にアクセスできますmyserver.com/customer1/myapp/admin
。ただし、ログインしようとすると、nginx はmyserver.com/admin
有効な URL ではない URL を書き換えます。nginx が実際に URL を書き換えないようにし、渡された URL のみを変更するにはどうすればよい127.0.0.1:8001
ですか?
FWIW、私はgunicornを使用してサービスを提供していgunicorn -b 127.0.0.1:8001 -n myapp
ます。ロケーションのコメント/
を外して、最後の 2 つのロケーション ブロックを削除すると、アプリはうまく機能します。
代替案がある場合、私はこのアプローチに着手することにはほど遠い. 目標は、デプロイごとに django コードを変更することを避け、代わりに新しいデプロイの nginx.conf に最小限のコードを追加することです。