У меня есть один проект django, который содержит 2 приложения, а именно, admin
и api
.
Приложение администратора зависит от api
приложения для доступа к моделям.
У меня есть 2 субдомена, такие как: admin.xxxx.com
и api.xxxx.com
.
Этот проект в настоящее время развернут в AWS EC2 с использованием gunicorn + nginx.
ОБНОВЛЕНИЕ
Все запросы администратора передаются: some.ip.address.0:8000/admin/
, а все запросы API проходят через some.ip.address.0:8000/
Есть ли способ указать мой some.ip.address.0: 8000 / admin / на admin.xxxx.com и some.ip.address .0: 8000 / до api.xxxx.com ?
ОБНОВЛЕНИЕ 2:
myproject_nginx.conf file:
upstream myproject_backend_server {
# fail_timeout=0 means we always retry an upstream even if it failed
# to return a good HTTP response (in case the Unicorn master nukes a
# single worker for timing out).
server unix:/home/ubuntu/myproject_backend/myproject_backend.sock fail_timeout=0;
}
server{
listen 80;
listen [::]:80;
server_name admin.mydomain.in;
location / {
proxy_pass http://13.***.***.***:8000/admin/;
}
location /static/ {
alias /home/ubuntu/myproject_backend/static/;
}
location /media/ {
alias /home/ubuntu/myproject_backend/media/;
}
}
server {
listen 80;
server_name 13.***.***.***:8000 api.mydomain.in www.api.mydomain.in;
client_max_body_size 4G;
location /static/ {
alias /home/ubuntu/myproject_backend/static/;
}
location /media/ {
alias /home/ubuntu/myproject_backend/media/;
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
# Try to serve static files from nginx, no point in making an
# *application* server like Unicorn/Rainbows! serve static files.
if (!-f $request_filename) {
proxy_pass http://myproject_backend_server;
break;
}
}
}
Файл myproject urls.py:
from django.urls import path, re_path, include
from django.conf.urls.static import static
from django.conf import settings
from django.views.static import serve
urlpatterns = [
re_path(r'^', include('api_app.urls')),
...
path('admin/', include('admin_app.urls')),
...
re_path(r'^static/(?P<path>.*)$', serve,
{'document_root': settings.STATIC_ROOT}),
re_path(r'^media/(?P<path>.*)$', serve,
{'document_root': settings.MEDIA_ROOT}),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Он открывает мою страницу входа администратора, но я пытаюсь войти, он говорит: / admin / admin не найден на этом сервере.
Подскажите, пожалуйста, что не так?