Puncte:0

Găzduiți două proiecte django diferite în aceeași picătură cu subdomenii diferite (NGINX, Gunicorn, ubuntu)

drapel fr

După cum spune titlul, vreau să găzduiesc două proiecte django diferite în aceeași picătură (NGINX, Gunicorn, ubuntu) cu subdomenii diferite.Unul va fi site-ul nostru principal example.com. care funcționează și funcționează perfect. Dorim să găzduim site-ul staging.example.com în aceeași picătură.

Am creat noi socketuri și fișiere de serviciu pentru site-ul de programare și le-am activat și activat, dar problema este că nginx indică în continuare fișierele din directorul domeniului principal și nu către directorul de pregătire și, prin urmare, primim această eroare mai jos, chiar dacă aceste domenii au fost adăugate. în gazdele permise ale settings.py ale site-ului de staging

DisallowedHost la / Antet HTTP_HOST nevalid: „staging.example.com”. Poate fi necesar să adăugați > „staging.example.com” la ALLOWED_HOSTS

Aici este fișierul nostru staging.guinicorn.service

[Unitate]
Descriere=staging.gunicorn daemon
Necesită=staging.gunicorn.socket
După=rețea.țintă

[Serviciu]
Utilizator=admin
Grup=www-date
WorkingDirectory=/home/admin/example1staging
ExecStart=/home/admin/example1staging/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/staging.gunicorn.sock djangoproject.wsgi:application

[Instalare]
WantedBy=multi-user.target

Aici este fișierul nostru staging.guicorn.socket

[Unitate]
Descriere=staging.gunicorn socket

[Priză]
ListenStream=/run/staging.gunicorn.sock

[Instalare]
WantedBy=sockets.target

În cele din urmă, aici este configurația noastră nginx

Server {
    asculta 80;
    asculta [::]:80;
    server_name example.com www.example.com;
    returnează 302 https://$server_name$request_uri;
}

Server {
    # Configurare SSL

    asculta 443 ssl http2;
    asculta [::]:443 ssl http2;
    ssl_certificate /etc/ssl/cert.pem;
    ssl_certificate_key /etc/ssl/key.pem;
    ssl_client_certificate /etc/ssl/cloudflare.crt;
    ssl_verify_client activat;

    rădăcină /var/www/html;
    index index.html index.htm index.nginx-debian.html;    

    locație = /favicon.ico { access_log off; log_not_found off; }
    locație /static/ {
        root /home/admin/example1;
    }

    Locație / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

Server {
    asculta 80;
    asculta [::]:80;
    nume_server staging.example.com www.staging.example.com;
    returnează 302 https://$server_name$request_uri;
}

Server {
    # Configurare SSL

    asculta 443 ssl http2;
    asculta [::]:443 ssl http2;
    ssl_certificate /etc/ssl/cert.pem;
    ssl_certificate_key /etc/ssl/key.pem;
    ssl_client_certificate /etc/ssl/cloudflare.crt;
    ssl_verify_client activat;

    rădăcină /var/www/html;
    index index.html index.htm index.nginx-debian.html;    

    locație = /favicon.ico { access_log off; log_not_found off; }
    locație /static/ {
        root /home/admin/example1staging;
    }

    Locație / {
        include proxy_params;
        proxy_pass http://unix:/run/staging.gunicorn.sock;
    }
}

Orice fel de ajutor ar fi extrem de apreciat!

Puncte:0
drapel ph

asculta 443 ssl http2;

nume_server example.com www.example.com;

asculta 443 ssl http2;

nume_server staging.example.com www.staging.example.com;

Modificați fișierul nginx în secțiunea https

Ixion Chowdhury avatar
drapel fr
Da, am făcut-o și a funcționat. Multumesc mult!
Puncte:0
drapel us

Ambele blocuri de configurare SSL lipsesc numele serverului directivă. Prin urmare, nginx folosește gazda virtuală implicită pentru toate solicitările și, în acest caz, este prima care ascultă portul 443.

Trebuie să adăugați corect numele serverului directive pentru a rezolva problema.

Ixion Chowdhury avatar
drapel fr
Mulțumesc mult! A funcționat ca un farmec!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.