myapp
adında tek bir django-admin uygulamasına sahip olmak istiyorum; bu, farklı fiziksel kutularda birden çok örneği istemci başına dağıtmak istiyorum. Ancak, hepsine benzer bir alandan, mydomain.com/customer1/myapp
'dan erişilmesini istiyorum.nginx proxy_pass ile birden çok django uygulaması ve yeniden yazabilir
Özel proxy ayarlarıyla uğraştım ve SO üzerinde önerilen birden çok şeyi denedim, ancak hiçbiri benim kullanım durumumu tam olarak uymuyor ... ve hem nginx
hem de django
hakkında çok az şey bildiğimden beri bir kayıp yaşıyorum!
Benim şu anki nginx.conf geçerli:
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
aracılığıyla beklendiği gibi ben giriş ekranına alabilirsiniz. Ancak, giriş yapmaya çalıştığımda, nginx, URL'imi geçerli bir URL olmayan myserver.com/admin
olarak yeniden yazar. Nginx'in url'yi gerçekten yeniden yazmasını ve yalnızca 127.0.0.1:8001
'a iletilen URL'yi değiştirmesini nasıl sağlayabilirim?
FWIW, gunicorn -b 127.0.0.1:8001 -n myapp
ile hizmet vermek için tabanca avı kullanıyorum. /
konumunun yerini almazsam ve son iki konum bloğunu kaldırırsam uygulama harika çalışır.
Alternatifler varsa, bu yaklaşımdan çok uzaktayım. Amaç, her dağıtım için django kodunu değiştirmekten kaçınmak ve bunun yerine yeni dağıtımlar için nginx.conf'a en az kod eklemektir.
Dağıtım hakkındaki sorular serverfault.com için daha uygun olabilir –
Sadece/url/url/yerine/customerX/myapp/admin/oluşturmak için django url tersine çevirmeye mi çalışıyorsunuz? – jpic
@jpic Hayır, django'nun yalnızca kök URL'leri görmesini istiyorum. Örneğin. '127.0.0.1: 8001/admin'. Bunu nginx ile yapabilirim, ama emin değilim. Ve "serverfault.com" hakkında kaydoldum, burada bir şey anlamamış olsam orada yayınlayacağım, teşekkürler. – Justin