Điểm:0

Cách thực hiện chuẩn hóa IP với Nginx và Certbot

lá cờ cn

Tôi có nhiều dịch vụ đang chạy trên máy chủ của mình, dịch vụ này sẽ được truy cập qua nginx và được mã hóa bởi certbot. Nếu tôi muốn truy cập dịch vụ của mình với http://example.com, tôi được chuyển hướng đến http(s)://example.com, thật tuyệt.

Tuy nhiên, nếu tôi gõ vào của tôi Địa chỉ IP:Cổng Tôi sẽ không được chuyển hướng đến tên miền của mình. Đây là tập tin abc.com của tôi trong /etc/nginx/sites-enabled

người phục vụ {
tên_máy chủ abc.com; #ví dụ: mysite.xyz
#access_log /var/log/nginx/<tên dịch vụ>.access.log;
#error_log /var/log/nginx/<tên dịch vụ>.error.log;

địa điểm / {
        proxy_pass http://127.0.0.1:9000; # ở đây bạn xác định địa chỉ được nginx sử dụng để truy cập dịch vụ của bạn
        proxy_http_version 1.1;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header Nâng cấp $http_upgrade;
        proxy_set_header Kết nối "nâng cấp";
        proxy_set_header Máy chủ lưu trữ $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Port $server_port;
} # đây là cổng bạn sử dụng để truy cập dịch vụ proxy

    nghe 443 ssl; # được quản lý bởi Certbot
    ssl_certificate /etc/letsencrypt/live/abc.com/fullchain.pem; # được quản lý bởi Certbot
    ssl_certificate_key /etc/letsencrypt/live/abc.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 = abc.com) {
        trả lại 301 https://$host$request_uri;
    } # được quản lý bởi Certbot

tên_máy chủ abc.com;

nghe 80;
    trả lại 404; # được quản lý bởi Certbot

}

Ai đó có thể cho tôi biết hoặc chỉ cho tôi hướng mà tôi cần thay đổi trong tệp abc.com của mình để chuyển hướng các yêu cầu qua Địa chỉ IP:Cổng đến https://example.com

Tôi biết ơn vì bất kỳ sự giúp đỡ nào!

Chỉnh sửa: Tôi đã làm cho các dịch vụ của mình có thể truy cập được qua localhost để giải quyết vấn đề của tôi. Cảm ơn tất cả các bạn vì những đóng góp của bạn!

Michael Hampton avatar
lá cờ cz
Đừng cố làm điều này. Các yêu cầu đối với địa chỉ IP của bạn dưới dạng máy chủ HTTP sẽ bị bỏ qua, không được chuyển hướng. Hầu như tất cả chúng đều độc hại. Cấu hình mặc định cung cấp lỗi 403 cho các yêu cầu như vậy và điều này nên được giữ nguyên.
sergeantSalty avatar
lá cờ cn
Bỏ qua sẽ thực sự là lựa chọn tốt nhất. Tuy nhiên, mặc định của tôi là không bỏ qua những yêu cầu như vậy. Nếu tôi nhập địa chỉ ip:port của mình, tôi sẽ có quyền truy cập vào các dịch vụ của mình. Chính xác thì tôi có thể làm gì để bỏ qua những yêu cầu như vậy? Cảm ơn sự đóng góp của bạn!
Michael Hampton avatar
lá cờ cz
Đặt lại khối `server` mặc định đi kèm với gói phân phối nginx.
sergeantSalty avatar
lá cờ cn
Ồ, chắc tôi hiểu nhầm ý bạn rồi, thực ra tôi đã không xóa khối máy chủ mặc định đi kèm với nginx.
Điểm:0
lá cờ za

Biến đổi một trong những dòng cuối cùng để

nghe 80 mặc định;
lá cờ sv
Vì OP đã sử dụng câu lệnh if để chuyển hướng dựa trên máy chủ nên giải pháp trên sẽ không hoạt động đối với trường hợp sử dụng cụ thể. Vì vậy, giải pháp trên sẽ dẫn đến 404.
sergeantSalty avatar
lá cờ cn
Pothi nói đúng, nó không diễn ra theo cách đó, nhưng dù sao cũng cảm ơn bạn.
Điểm:0
lá cờ sv

Chào mừng đến với ServerFault.

Ai đó có thể cho tôi biết hoặc chỉ cho tôi hướng mà tôi cần thay đổi không trong tệp abc.com của tôi để chuyển hướng các yêu cầu qua Địa chỉ IP:Cổng tới https://example.com

Bạn không phải chỉnh sửa tệp hiện có mà Certbot có thể sửa đổi trong tương lai.

Thay vào đó, trong /etc/nginx/sites-enabled, hãy tạo một tệp khác (ví dụ: có tên ip.conf), với nội dung như sau...

người phục vụ {
    nghe 80;
    tên_máy chủ 127.0.0.1;
    trả lại 301 https://example.com$request_uri;
}

Trong đoạn mã trên, hãy thay thế 127.0.0.1 bằng địa chỉ IP thực của máy chủ của bạn và sau đó thay thế ví dụ.com quá.

sergeantSalty avatar
lá cờ cn
Xin chào và cảm ơn sự giúp đỡ của bạn. Tôi đã thử cách tiếp cận của bạn nhưng thật đáng buồn là nó không hoạt động. Tôi vẫn được chuyển đến dịch vụ không an toàn của mình. :/

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