Tôi có thể ánh xạ tên máy chủ * và * một cổng với / etc / hosts không? [đóng cửa]


189

Tôi có thể ánh xạ một địa chỉ IP như 127.0.0.1tên miền cổng không?

Ví dụ, tôi muốn ánh xạ 127.0.0.1tớiapi.example.com:8000


6
Bạn không thể ánh xạ số cổng trong / etc / hosts. Thay vào đó, bạn có thể xác định 127.0.0.1 api.mydomain.comvà truy cập nó trong trình duyệt nhưapi.mydomain.com:8080
Fizer Khan

Tôi đọc ở đâu đó rằng dns hỗ trợ này. Bạn có thể có một bản ghi cho biết trên www.example.com http trên cổng 80 và cũng là một bản ghi A để nói rằng địa chỉ là 127.0.0.1, nó cũng cho biết nó không được hỗ trợ tốt. Nó đã không nói nhiều sau đó.
ctrl-alt-delor

Câu trả lời:


184

Không, điều đó là không thể. Cổng không phải là một phần của tên máy chủ, vì vậy nó không có ý nghĩa gì trong hosts-file.


134

Nếu bạn thực sự cần phải làm điều này, sử dụng proxy ngược.

Ví dụ: với nginx là proxy ngược

server {
  listen       api.mydomain.com:80;
  server_name  api.mydomain.com;
  location / {
    proxy_pass http://127.0.0.1:8000;
  }
}

4
Tôi nghĩ rằng dòng proxy_pass sẽ giống như thế này: proxy_pass http://127.0.0.1:8000;Tôi đã nhận được "tiền tố URL không hợp lệ" trên nginx 1.4.3.
Nobu

cảm ơn vì mẹo tuyệt vời này giải pháp đơn giản cho hầu hết các máy chủ.
micahscopes

Tôi đang sử dụng thủ thuật này để ánh xạ các cổng của một máy từ xa (ví dụ: cloud.app:80 trong khi cổng thực tế là 8080). Rất hữu ích để kiểm tra các nút Hợp lưu của một cụm nhưng truy cập chúng trên cùng một URL cơ sở. Cảm ơn!
Gábor Nagy

9
Về cơ bản, tôi đã có cùng một vấn đề và giải pháp sử dụng proxy ngược này thực sự hữu ích. Mặc dù, tôi muốn một số giải pháp đơn giản hơn nên tôi đã tạo ra công cụ này: github.com/cristianoliveira/ergo Tôi hy vọng nó sẽ giúp ích bằng cách nào đó :)
Cristian Oliveira

Cảm ơn @CristianOliveira! Điều này đã giúp tôi rất nhiều :)
brunetton
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.