Như tiêu đề đã nói, tôi muốn lưu trữ hai dự án django khác nhau trong cùng một giọt (NGINX, Gunicorn, ubuntu) với các tên miền phụ khác nhau.Một sẽ là trang web chính của chúng tôi example.com. đang hoạt động và hoạt động hoàn hảo. Chúng tôi muốn lưu trữ trang web dàn dựng staging.example.com trong cùng một phần nhỏ.
Chúng tôi đã tạo các ổ cắm và tệp dịch vụ mới cho trang dàn dựng, đồng thời kích hoạt và kích hoạt chúng nhưng vấn đề là nginx vẫn trỏ đến các tệp trong thư mục miền chính chứ không phải thư mục dàn dựng và do đó chúng tôi gặp lỗi này bên dưới mặc dù các miền này đã được thêm vào trong các máy chủ được phép của settings.py của trang dàn dựng
DisallowedHost tại / Tiêu đề HTTP_HOST không hợp lệ: 'staging.example.com'. Bạn có thể cần thêm >'staging.example.com' vào ALLOWED_HOSTS
Đây là tệp staging.guinicorn.service của chúng tôi
[Đơn vị]
Description=staging.gunicorn daemon
Yêu cầu=staging.gunicorn.socket
Sau=mạng.mục tiêu
[Dịch vụ]
Người dùng = quản trị viên
Nhóm=www-dữ liệu
WorkingDirectory=/home/admin/example1staging
ExecStart=/home/admin/example1staging/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/staging.gunicorn.sock djangoproject.wsgi:application
[Cài đặt]
WantedBy=multi-user.target
Đây là tệp staging.guicorn.socket của chúng tôi
[Đơn vị]
Mô tả = ổ cắm staging.gunicorn
[Ổ cắm]
ListenStream=/run/staging.gunicorn.sock
[Cài đặt]
WantedBy=sockets.target
Cuối cùng đây là cấu hình nginx của chúng ta
người phục vụ {
nghe 80;
nghe [::]:80;
server_name example.com www.example.com;
trả về 302 https://$server_name$request_uri;
}
người phục vụ {
# Cấu hình SSL
nghe 443 ssl http2;
nghe [::]:443 ssl http2;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;
ssl_client_certificate /etc/ssl/cloudflare.crt;
bật ssl_verify_client;
gốc/var/www/html;
chỉ mục index.html index.htm index.nginx-debian.html;
vị trí = /favicon.ico { truy cập_đăng xuất; log_not_found tắt; }
vị trí /tĩnh/ {
gốc/nhà/quản trị/ví dụ1;
}
địa điểm / {
bao gồm proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
người phục vụ {
nghe 80;
nghe [::]:80;
server_name staging.example.com www.staging.example.com;
trả về 302 https://$server_name$request_uri;
}
người phục vụ {
# Cấu hình SSL
nghe 443 ssl http2;
nghe [::]:443 ssl http2;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;
ssl_client_certificate /etc/ssl/cloudflare.crt;
bật ssl_verify_client;
gốc/var/www/html;
chỉ mục index.html index.htm index.nginx-debian.html;
vị trí = /favicon.ico { truy cập_đăng xuất; log_not_found tắt; }
vị trí /tĩnh/ {
gốc /home/admin/example1staging;
}
địa điểm / {
bao gồm proxy_params;
proxy_pass http://unix:/run/staging.gunicorn.sock;
}
}
Bất kỳ loại trợ giúp sẽ được đánh giá rất cao!