Điểm:0

Tại sao tệp conf nginx của tôi chuyển hướng tên miền phụ sang tên miền chính?

lá cờ cn

Tôi đã xóa tất cả các tệp khỏi /etc/nginx/site-enabled/ danh mục.

Tôi cũng đã xóa tất cả các tệp khỏi /etc/nginx/sites-available/ danh mục.

Tôi chỉ có một tập tin trong /etc/nginx/conf.d/ gọi điện my-domain-name.com.conf và nó chứa:

người phục vụ {
    nghe 80;
    server_name my-domain-name.com www.my-domain-name.com;
    trả về 301 https://$server_name$request_uri;
}

người phục vụ {
    nghe 443 ssl;
    server_name my-domain-name.com www.my-domain-name.com;

    ssl_certificate /etc/letsencrypt/live/my-domain-name.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/my-domain-name.com/privkey.pem;

    bao gồm /etc/letsencrypt/options-ssl-nginx.conf;

    địa điểm / {
        proxy_pass http://localhost:4000;
    }
}

Tôi ủy quyền lưu lượng truy cập đến bộ chứa docker nghe trên cổng 4000.

Nó hoạt động tuyệt vời cho my-domain-name.comwww.my-domain-name.com.

Tuy nhiên, nó cũng chuyển hướng TẤT CẢ CÁC trong số các tên miền phụ của tôi đã được xác định trong DNS.

Đây không phải là hành vi dự định. Tôi chỉ muốn tệp này phục vụ hai miền này, không nhiều hơn.

Có gì sai ở đây?

Cập nhật:

Tôi đã thêm một tệp khác, được gọi là sudomain.my-domain-name.com.conf và tôi đã thêm cấu hình này bên trong nó:

người phục vụ {
    nghe 80;
    server_name subdomain.my-domain-name.com;
    trả về 301 https://$server_name$request_uri;
}

người phục vụ {
    nghe 443 ssl;
    server_name subdomain.my-domain-name.com;

    ssl_certificate /etc/letsencrypt/live/my-domain-name.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/my-domain-name.com/privkey.pem;

    bao gồm /etc/letsencrypt/options-ssl-nginx.conf;

    địa điểm / {
        proxy_pass http://localhost:3131;
    }
}

nginx -t cho thấy sự thành công và nginx -s tải lại cũng được áp dụng. Nhưng một lần nữa khi tôi đi đến tên miền phụ.my-domain-name.com, thay vì tải docker thứ hai đang chạy trên cổng 3131, tôi lại được chuyển hướng đến my-domain-name.com trang.

Điểm:1
lá cờ pl

Please show nginx configuration of your subdomains.

EDIT 1:

Try adding this config file (name it as you wish):

server {
    listen 80;
    server_name my-subdomain-name.my-domain-name.com www.my-subdomain-name.my-domain-name.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    
    server_name my-subdomain-name.my-domain-name.com www.my-subdomain-name.my-domain-name.com;

    ssl_certificate /etc/letsencrypt/live/my-subdomain-name.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/my-subdomain-name.com/privkey.pem;

    include /etc/letsencrypt/options-ssl-nginx.conf;

    location / {
#      You can change port, url if you wish
        proxy_pass http://localhost:4000;
    }
}

EDIT 2:

For example you have this subdomain: test.my-domain.com Then you have to set up your server to serve files from that subdomain. For that, we've to create a nginx config file.

Saeed Neamati avatar
lá cờ cn
Không có tệp cấu hình cho tên miền phụ. Chúng chỉ được xác định trong DNS của tôi, đó là CloudFlare.
Saeed Neamati avatar
lá cờ cn
Tệp cấu hình đó là tệp cấu hình duy nhất của tôi trong thư mục `/etc/nginx/conf.d/`.
lá cờ pl
Bạn phải tạo một tệp cấu hình cho từng tên miền và tên miền phụ.
Saeed Neamati avatar
lá cờ cn
Gửi @ArRakin, cảm ơn vì đã trả lời.Nhưng tôi không hiểu làm thế nào điều này giúp tôi.
Saeed Neamati avatar
lá cờ cn
Với tất cả sự tôn trọng, tôi nghĩ rằng bạn đã hiểu sai vấn đề của tôi.
lá cờ pl
Tôi đang chỉnh sửa bài viết này bây giờ.
Saeed Neamati avatar
lá cờ cn
Giả sử tôi chỉ có các tên miền phụ trong DNS của mình và tôi không quan tâm đến việc cung cấp bất kỳ thứ gì từ chúng. Tại sao Nginx có hành vi này với một tệp duy nhất này? Tại sao nó lại chuyển hướng **TẤT CẢ** lưu lượng truy cập đến miền chính của tôi, trong khi nó được thông báo rõ ràng là chỉ phục vụ miền chính của tôi?
Michael Hampton avatar
lá cờ cz
@SaeedNeamati Bạn đã gửi lưu lượng đến nginx, vì vậy nó phải làm gì đó với nó. Trong trường hợp bạn không chỉ định khối máy chủ sẽ sử dụng, nó sẽ sử dụng mặc định.
Saeed Neamati avatar
lá cờ cn
logic đó là vô lý. bạn có thể chỉ cho tôi **mặc định** ở đâu không? cấu hình của tôi là rõ ràng và nó không có giá trị mặc định trong đó.
Saeed Neamati avatar
lá cờ cn
Vui lòng xem bản cập nhật.
djdomi avatar
lá cờ za
cho chúng tôi thấy đầu ra hoàn chỉnh của `nginx -T`
Điểm:0
lá cờ sz

Tuy nhiên, nó cũng chuyển hướng TẤT CẢ tên miền phụ của tôi đã được xác định trong DNS. [...] Đây không phải là hành vi dự định. Tôi chỉ muốn tập tin này để phục vụ hai miền này, không nhiều hơn.

Nếu một tên miền phụ phân giải thành cùng một địa chỉ IP với máy chủ lưu trữ hai tên miền mà bạn thực sự muốn phục vụ, Nginx sẽ buộc phải xử lý các yêu cầu gửi đến đó.

Tại sao nó chuyển hướng TẤT CẢ lưu lượng truy cập đến tên miền chính của tôi, trong khi nó rõ ràng được yêu cầu chỉ phục vụ tên miền chính của tôi?

Đây là hành vi mặc định. Nginx cố gắng định tuyến các yêu cầu đến máy chủ thích hợp bằng cách sử dụng Chủ nhà Tiêu đề HTTP, nhưng nếu không khớp, nó sẽ định tuyến lưu lượng truy cập đến máy chủ mặc định. Đây dường như là nguồn gốc của sự nhầm lẫn.

Nếu trường tiêu đề Máy chủ không khớp với tên máy chủ, NGINX Plus định tuyến yêu cầu đến máy chủ mặc định cho cổng mà trên đó yêu cầu đến. Máy chủ mặc định là máy chủ đầu tiên được liệt kê trong tập tin nginx.conf, trừ khi bạn đưa tham số default_server vào chỉ thị lắng nghe để chỉ định rõ ràng một máy chủ làm mặc định1.

Để thực sự ngăn máy chủ phục vụ nội dung miền của bạn trừ khi được yêu cầu cụ thể, bạn có thể thêm khối máy chủ mặc định thực tế. Bạn thậm chí có thể trả lại 204 Không có nội dung cho tất cả các yêu cầu nếu bạn muốn, mặc dù điều gì đó thậm chí có nhiều sắc thái hơn có lẽ luôn được ưu tiên hơn.

Đă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.