Điểm:0

một ip giải quyết 2 trang web - Cấu hình Ubuntu 20.04 để cho phép tên miền cụ thể

lá cờ cn

Vì vậy, gần đây tôi đã thiết lập giọt biển kỹ thuật số với Ubuntu 20.04 với máy chủ web nginx.Tôi mặc định một trang web nói example.com sử dụng cài đặt nginx và sau đó là IP của đại dương kỹ thuật số dưới dạng bản ghi trong bảng điều khiển tên miền dns.

Vì vậy, example.com đang hoạt động tốt, nhưng vô tình tôi đã đặt cùng một IP vào một miền khác, chẳng hạn như example1.com và hiện tại cả example1.com và example.com đều đang mở cùng một trang web.

Vì vậy, câu hỏi đặt ra là bất kỳ tên miền nào khác biết IP của tôi đều có thể sử dụng IP này để hiển thị trang web không được phép.

Tôi không rõ cấu hình nào ở cấp hệ điều hành hoặc cấp máy chủ phải được thực hiện để ngăn các miền không mong muốn sử dụng IP này hoặc thêm một số miền trên máy chủ để chỉ cho phép miền cụ thể.

    người phục vụ {
        nghe 80;
        trả lại 301 https://$host$request_uri;
    }
    
    người phục vụ {
            nghe 443 ssl mặc định http2;
            server_name example.com;
            nội trang ssl_session_cache:1000 shared:SSL:10m;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_ciphers CAO:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
            bật ssl_prefer_server_ciphers;
            bật gzip;
            bật gzip_static;
            phông chữ gzip_types/văn bản woff2/văn bản thuần túy/ứng dụng css/ứng dụng json/văn bản x-javascript/ứng dụng xml/ứng dụng xml/xml>
            gzip_proxied bất kỳ;
            bật gzip_vary;
            gzip_comp_level 6;
            gzip_buffers 16 8k;
            gzip_http_version 1.1;

Đây là cấu hình đầy đủ của nginx:

tệp cấu hình /etc/nginx/sites-enabled/ug:

người phục vụ {
    nghe 80 default_server;
trả lại 404;
   # trả lại 301 https://$host$request_uri;
}

người phục vụ {
    nghe 443 ssl http2;
    server_name example.com;
    nội trang ssl_session_cache:1000 shared:SSL:10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers CAO:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    bật ssl_prefer_server_ciphers;
    bật gzip;
    bật gzip_static;    
    phông chữ gzip_types/văn bản woff2/văn bản thuần túy/ứng dụng css/ứng dụng json/văn bản x-javascript/ứng dụng xml/ứng dụng xml/văn bản xml+rss/ứng dụng javascript/javascript;
    gzip_proxied bất kỳ;
    bật gzip_vary;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
# trả về 404;

    địa điểm / {
        chỉ mục index.html
        add_header Pragma "no-cache";
        add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
        try_files $uri $uri @universal;
        gốc /home/winnc/www/us/dist/ecommcerce/server;
    }

    địa điểm @universal {
        #port được xác định trong server.js của bạn
        proxy_pass http://localhost:4000;
        proxy_http_version 1.1;
        proxy_set_header Nâng cấp $http_upgrade;
        'nâng cấp' kết nối proxy_set_header;
        proxy_set_header Máy chủ lưu trữ $host;
        proxy_cache_bypass $http_upgrade;
    }

    vị trí / quản trị viên {
        chỉ mục index.html
        add_header Pragma "no-cache";
        add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
        try_files $uri $uri/admin @universal-admin;
        gốc /home/winnc/www/us/dist/ecommerce-admin/server/dist/ecommerce-admin/browser;
    }

    địa điểm @universal-admin {
        #port được xác định trong server.js của bạn
        proxy_pass http://localhost:4001; 
        proxy_http_version 1.1;
        proxy_set_header Nâng cấp $http_upgrade;
        'nâng cấp' kết nối proxy_set_header;
        proxy_set_header Máy chủ lưu trữ $host;
        proxy_cache_bypass $http_upgrade;
    }

    vị trí /api/ {
            proxy_pass http://localhost:5000;
            proxy_http_version 1.1;
            proxy_set_header Nâng cấp $http_upgrade;
            proxy_set_header Kết nối vẫn hoạt động;
            proxy_set_header Máy chủ lưu trữ $host;
            proxy_cache_bypass $http_upgrade;
        proxy_redirect http://localhost:5000 https://example.com;
        gốc/nhà/winnc/www/us;
    }

        địa điểm /nội dung/ {
             proxy_pass http://localhost:5000;
             proxy_http_version 1.1;
             proxy_set_header Nâng cấp $http_upgrade;
             proxy_set_header Kết nối vẫn hoạt động;
             proxy_set_header Máy chủ lưu trữ $host;
             proxy_cache_bypass $http_upgrade;
         proxy_redirect http://localhost:5000 https://example.com;
        gốc/nhà/winnc/www/us;
    }


# nghe 443 ssl; # được quản lý bởi Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # được quản lý bởi Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # được quản lý bởi Certbot
# bao gồm /etc/letsencrypt/options-ssl-nginx.conf; # được quản lý bởi Certbot
# ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # được quản lý bởi Certbot
}


#người phục vụ {
# nếu ($host = example.com) {
# trả lại 301 https://$host$request_uri;
# } # được quản lý bởi Certbot


# tên_máy chủ ví dụ.com;
#nghe80;
# trả về 404; # được quản lý bởi Certbot


#}
Điểm:1
lá cờ us

nginx có khái niệm về máy chủ ảo mặc định, được phục vụ cho các yêu cầu HTTP không có máy chủ ảo tương ứng được định cấu hình.

Thuật toán chính xác để quyết định sử dụng máy chủ ảo được mô tả trong tài liệu nginx.

Nếu hai máy chủ ảo trong câu hỏi của bạn là những máy chủ duy nhất được định cấu hình, thì chúng cũng là máy chủ ảo mặc định cho các cổng tương ứng.

Để định cấu hình máy chủ ảo mặc định phù hợp, bạn cần thêm thông tin sau người phục vụ khối:

người phục vụ {
    nghe 80 default_server;
    trả lại 404;
}

người phục vụ {
    nghe 443 default_server ssl http2;
    trả lại 404;
}

Điều này yêu cầu nginx trả lại HTTP 404 mã trạng thái cho tất cả các máy chủ ảo ngoại trừ máy chủ ảo được định cấu hình bằng tên máy chủ.

Bạn cũng cần phải loại bỏ vô nghĩa mặc định từ khóa hiện tại nghe chỉ thị, để nó trở thành

nghe 443 ssl http2;

Nhìn chung, bạn cần phải có bốn người phục vụ khối:

  1. default_server cho cổng 80
  2. default_server cho cổng 443
  3. ví dụ.com cho cổng 80
  4. ví dụ.com cho cổng 443
lá cờ cn
Ngay sau khi tôi thay đổi cài đặt, cả hai miền đều nhận được 404 hoặc cả hai đều hoạt động. Nhưng tôi chỉ muốn một tên miền hoạt động còn tên miền khác thì không.
lá cờ us
Vui lòng chỉnh sửa câu hỏi của bạn và thêm đầu ra của `nginx -T` để chúng tôi thấy cấu hình đầy đủ của bạn.
lá cờ cn
Tôi đã chỉnh sửa câu hỏi
lá cờ us
Bạn cần giữ nguyên khối `server` ban đầu của mình cho lưu lượng HTTP và thêm khối `default_server` vào câu trả lời của tôi một cách riêng biệt.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.