Tôi có một tên miền, giả sử ví dụ.com
đã đăng ký tại Dynadot. Tôi đang có nó, cùng với tên miền phụ www.example.com
và đám mây.example.com
trỏ đến địa chỉ IP của tôi qua bản ghi A. Tôi đã thiết lập một số máy chủ có thể truy cập bằng tên miền này. Ví dụ: máy chủ FTP của tôi có thể được truy cập bằng cách sử dụng ví dụ.com:21
. Tôi có một máy chủ Node.js chạy trên cổng 80 và một đám mây tiếp theo máy chủ chạy trên cổng 85. Điều cuối cùng tôi đã thiết lập là một máy chủ Nginx, lắng nghe trên cổng 80. Đây là cấu hình Nginx của tôi:
người phục vụ {
nghe 80;
server_name cloud.example.com;
địa điểm / {
proxy_pass http://example.com:85;
}
}
người phục vụ {
nghe 80;
server_name www.example.com;
địa điểm / {
proxy_pass http://192.168.1.31;
}
}
người phục vụ {
nghe 80;
server_name example.com;
địa điểm / {
proxy_pass http://192.168.1.31;
}
}
Những gì cấu hình này làm là:
Nếu người dùng đi đến ví dụ.com
hoặc www.example.com
, nó chuyển hướng chúng đến máy chủ Node.js của tôi.
Nếu người dùng đi đến đám mây.example.com
, nó chuyển hướng chúng đến máy chủ Nextcloud của tôi, máy chủ này cũng có thể truy cập được từ ví dụ.com:85
.
Nếu người dùng muốn kết nối với một máy chủ khác đang chạy trên một cổng khác, họ có thể sử dụng example.com:<cổng>
Điều này hoạt động rất tốt, nhưng vấn đề duy nhất của tôi là ISP của tôi chặn lưu lượng truy cập đến cho cổng 80!
Tôi đã cố gắng tìm giải pháp trong nhiều giờ và lựa chọn duy nhất của tôi là sử dụng GoDaddy. Tôi có thể lưu trữ máy chủ Nginx của mình trên GoDaddy, điều này chỉ ra ví dụ.com
và www.example.com
đến máy chủ Node.js của tôi và các điểm đám mây.example.com
đến máy chủ Nextcloud của tôi. Điều này sẽ làm việc, nhưng nó có nghĩa là ví dụ.com
Cài đặt DNS của cần phải được thay đổi thành bản ghi A trỏ đến máy chủ GoDaddy. Tất cả điều này sẽ hoạt động tốt, nhưng điều đó có nghĩa là tôi không còn có thể truy cập vào bất kỳ máy chủ nào khác của mình, chẳng hạn như máy chủ FTP của tôi vì ví dụ.com:21
sẽ không còn trỏ đến <IP của tôi>:21
, nhưng <IP máy chủ GoDaddy>:21
.
Tôi đã nghĩ, để giải quyết vấn đề này, tôi có thể định cấu hình máy chủ Nginx của mình để nó thực hiện những gì nó đã làm trước đây, nhưng nếu người dùng truy cập ví dụ.com
với BẤT KỲ cổng nào ngoài cổng 80, nó sẽ chuyển tiếp kết nối tới <my IP>:<port>
. Bằng cách đó, tất cả các máy chủ khác của tôi, chẳng hạn như máy chủ FTP của tôi sẽ vẫn có thể truy cập được thông qua ví dụ.com:21
, nhưng cổng 80 sẽ không bị chặn vì máy chủ Nginx sử dụng cổng 80 đang được lưu trữ trên GoDaddy.
Tuy nhiên, tôi không biết liệu điều này có khả thi với Nginx hay không.Nếu có thì cấu hình sẽ như thế nào? Nếu không, tôi có những lựa chọn nào khác? (Khác với việc mua kế hoạch kinh doanh của ISP của tôi để bỏ chặn cổng 80)