Puncte:0

Nginx: rulează mai multe aplicații web pe același server folosind subdomenii

drapel in

am o Ubuntu 20.04.1 LTS iar eu alerg nginx/1.18.0 (Ubuntu).

Practic, am trei fișiere de configurare în folderul meu /etc/nginx/sites-available deoarece aș dori să direcționez cererile către:

  1. myserver.com
  2. immos.myserver.com
  3. items.myserver.com

Ale mele myserver.com fișierul de configurare arată astfel:

Server {
    nume_server serverul meu.com www.serverul meu.com;
    root /var/www/main-application/public;

    add_header X-Frame-Options „SAMEORIGIN”;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.html index.htm index.php;

    set de caractere utf-8;

    Locație / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    locație = /favicon.ico { access_log off; log_not_found off; }
    locație = /robots.txt { access_log off; log_not_found off; }

    eroare_page 404 /index.php;

    locație ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    locație ~ /\.(?!cunoscut).* {
        nega totul;
    }


    asculta 443 ssl; # gestionat de Certbot
    ssl_certificate /etc/letsencrypt/live/myserver.com/fullchain.pem; # gestionat de Certbot
    ssl_certificate_key /etc/letsencrypt/live/myserver.com/privkey.pem; # gestionat de Certbot
    includ /etc/letsencrypt/options-ssl-nginx.conf; # gestionat de Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # gestionat de Certbot


}
Server {
    dacă ($gazdă = www.myserver.com) {
        returnează 301 https://$host$request_uri;
    } # gestionat de Certbot


    dacă ($gazdă = serverul meu.com) {
        returnează 301 https://$host$request_uri;
    } # gestionat de Certbot


    asculta 80;
    nume_server serverul meu.com www.serverul meu.com nlg.serverul meu.com;
    întoarce 404; # gestionat de Certbot




}

Nginx-config al meu immos.myserver.com arata asa:

Server {
    asculta 80;
    nume_server immos.myserver.com;
    root /var/www/immos-application/public;

    add_header X-Frame-Options „SAMEORIGIN”;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.html index.htm index.php;

    set de caractere utf-8;

    Locație / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    locație = /favicon.ico { access_log off; log_not_found off; }
    locație = /robots.txt { access_log off; log_not_found off; }

    eroare_page 404 /index.php;

    locație ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    locație ~ /\.(?!cunoscut).* {
        nega totul;
    }

}

Configurația mea nginx a items.myserver.com arata asa:

Server {
    asculta 80;
    nume_server items.myserver.com;
    root /var/www/items_application/public;

    add_header X-Frame-Options „SAMEORIGIN”;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.html index.htm index.php;

    set de caractere utf-8;

    Locație / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    locație = /favicon.ico { access_log off; log_not_found off; }
    locație = /robots.txt { access_log off; log_not_found off; }

    eroare_page 404 /index.php;

    locație ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    locație ~ /\.(?!cunoscut).* {
        nega totul;
    }

}

Toate subdomeniile și domeniul sunt direcționate pe DNS către ip-ul serverului meu.

pot deschide myserver.com și fiți direcționat către pagina corectă.

DAR la deschidere immos.myserver.com, items.myserver.com Sunt direcționat către aplicația pe care rulează myserver.com.

Toate cele trei aplicații sunt aplicații laravel.

Orice sugestii cu ce fac gresit?

drapel in
Subdomeniile dvs. sunt configurate doar pentru http. Încercați să le accesați prin https?
dave_thompson_085 avatar
drapel jp
Aceste fișiere sunt doar în `sites-available` sau **le-ați conectat și în `sites-enabled` și le-ați respins pe nginx?** Dacă nu, nginx nu le citește de fapt. Vedeți https://serverfault.com/questions/424452/nginx-enable-site-command

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.