Puncte:0

un ip care rezolvă 2 site-uri web - configurație Ubuntu 20.04 pentru a permite un anumit domeniu

drapel cn

Deci, recent am configurat picătură digitală oceanică cu Ubuntu 20.04 cu serverul web nginx.Un site implicit spun setările example.com usinh nginx și apoi IP-ul oceanului digital ca înregistrare în panoul dns al domeniului.

Deci example.com funcționează bine, dar fără să știu am pus același IP într-un alt domeniu, spune example1.com și acum atât example1.com, cât și example.com deschid același site web.

Deci, se pune întrebarea că orice alt domeniu care îmi cunoaște IP-ul poate folosi acest IP pentru a arăta site-ul web care nu ar trebui să fie permis.

Nu sunt clar ce configurație la nivel de sistem de operare sau la nivel de server trebuie făcută pentru a preveni ca domeniile nedorite să folosească acest IP sau să adauge un domeniu pe server pentru a permite doar un anumit domeniu.

    Server {
        asculta 80;
        returnează 301 https://$host$request_uri;
    }
    
    Server {
            asculta 443 ssl implicit http2;
            nume_server example.com;
            ssl_session_cache builtin:1000 shared:SSL:10m;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
            ssl_prefer_server_ciphers activat;
            gzip on;
            gzip_static activat;
            gzip_types font/woff2 text/plain text/css application/json application/x-javascript text/xml application/xml application/xml>
            gzip_proxied orice;
            gzip_vary on;
            gzip_comp_level 6;
            gzip_buffers 16 8k;
            gzip_http_versiunea 1.1;

Iată configurația completă a nginx:

fișier de configurare /etc/nginx/sites-enabled/ug:

Server {
    asculta 80 default_server;
întoarce 404;
   # return 301 https://$host$request_uri;
}

Server {
    asculta 443 ssl http2;
    nume_server example.com;
    ssl_session_cache builtin:1000 shared:SSL:10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers activat;
    gzip on;
    gzip_static activat;    
    gzip_types font/woff2 text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
    gzip_proxied orice;
    gzip_vary on;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_versiunea 1.1;
# return 404;

    Locație / {
        index index.html
        add_header Pragma „fără cache”;
        add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
        try_files $uri $uri @universal;
        root /home/winnc/www/us/dist/ecommcerce/server;
    }

    locație @universal {
        #port definit în server.js
        proxy_pass http://localhost:4000;
        proxy_http_versiunea 1.1;
        proxy_set_header Actualizare $http_upgrade;
        proxy_set_header Conexiune „upgrade”;
        proxy_set_header Gazdă $gazdă;
        proxy_cache_bypass $http_upgrade;
    }

    locație /admin {
        index index.html
        add_header Pragma „fără cache”;
        add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
        try_files $uri $uri/admin @universal-admin;
        root /home/winnc/www/us/dist/ecommerce-admin/server/dist/ecommerce-admin/browser;
    }

    locație @universal-admin {
        #port definit în server.js
        proxy_pass http://localhost:4001; 
        proxy_http_versiunea 1.1;
        proxy_set_header Actualizare $http_upgrade;
        proxy_set_header Conexiune „upgrade”;
        proxy_set_header Gazdă $gazdă;
        proxy_cache_bypass $http_upgrade;
    }

    locație /api/ {
            proxy_pass http://localhost:5000;
            proxy_http_versiunea 1.1;
            proxy_set_header Actualizare $http_upgrade;
            proxy_set_header Menținerea conexiunii;
            proxy_set_header Gazdă $gazdă;
            proxy_cache_bypass $http_upgrade;
        proxy_redirect http://localhost:5000 https://example.com;
        root /home/winnc/www/us;
    }

        locație /conținut/ {
             proxy_pass http://localhost:5000;
             proxy_http_versiunea 1.1;
             proxy_set_header Actualizare $http_upgrade;
             proxy_set_header Menținerea conexiunii;
             proxy_set_header Gazdă $gazdă;
             proxy_cache_bypass $http_upgrade;
         proxy_redirect http://localhost:5000 https://example.com;
        root /home/winnc/www/us;
    }


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


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


# server_name example.com;
# asculta 80;
# return 404; # gestionat de Certbot


#}
Puncte:1
drapel us

nginx are un concept de gazdă virtuală implicită, care este servită solicitărilor HTTP care nu au configurată o gazdă virtuală corespunzătoare.

Algoritmul exact pentru a decide gazda virtuală de utilizat este descris în documentația nginx.

Dacă cele două gazde virtuale din întrebarea dvs. sunt singurele configurate, atunci acestea sunt și gazde virtuale implicite pentru porturile corespunzătoare.

Pentru a configura o gazdă virtuală implicită adecvată, trebuie să adăugați următoarele Server blocuri:

Server {
    asculta 80 default_server;
    întoarce 404;
}

Server {
    asculta 443 default_server ssl http2;
    întoarce 404;
}

Acest lucru îi spune lui nginx să returneze HTTP 404 cod de stare pentru toate gazdele virtuale, cu excepția gazdei virtuale configurate cu a numele serverului.

De asemenea, trebuie să eliminați lipsa de sens Mod implicit cuvânt cheie în curent asculta directivă, astfel încât să devină

asculta 443 ssl http2;

În general, trebuie să aveți patru Server blocuri:

  1. implicit_server pentru portul 80
  2. implicit_server pentru portul 443
  3. exemplu.com pentru portul 80
  4. exemplu.com pentru portul 443
drapel cn
De îndată ce schimb setările, fie ambele domenii primesc 404, fie ambele funcționează. Dar vreau doar ca un domeniu să funcționeze, dar altul nu.
drapel us
Vă rugăm să vă editați întrebarea și să adăugați rezultatul `nginx -T`, astfel încât să vedem configurația dvs. completă.
drapel cn
Am editat intrebarea
drapel us
Trebuie să păstrați blocul original `server` pentru traficul HTTP și să adăugați blocul `default_server` în răspunsul meu separat.

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.