Nginx chuyển tiếp theo tên máy chủ


1

Tôi có một số dịch vụ được neo, phục vụ http (và https). Cổng http bên trong (80) được ánh xạ ở cấp độ docker sang một cổng khác, do đó có thể truy cập được trên máy chủ. Và điều này đang hoạt động tốt:

curl localhost:1234

Đưa tôi đến dịch vụ http của tôi trong container.

Bây giờ tôi muốn điều này có thể truy cập thông qua một dns, mà không phải chỉ định cổng (tôi muốn bảo vệ các máy khách khỏi ánh xạ cổng này). Tôi muốn sử dụng nginx để chuyển tiếp yêu cầu đến http://myserver1-> http://localhost:1234.

Nginx có thể được cấu hình theo cách đó? Nó có thể được cấu hình để chuyển tiếp nhiều lần, như sau:

http://myserver1  --> http://localhost:1234
http://myserver2  --> http://localhost:1235
...

Điều này có thể được thực hiện (ví dụ) bằng cách sử dụng thiết lập proxy ngược có thể với Nginx.
Seth

Câu trả lời:


0

Vâng, nó có thể.

tùy chọn server_name được sử dụng để tìm kết quả phù hợp nhất giữa các trang web khác nhau được lưu trữ trên cùng một máy chủ nginx như

server {
  listen 80;
  listen [::]:80;
  server_name myserver1; 

và một số khác như

server {
  listen 80;
  listen [::]:80;
  server_name myserver2; 

Bằng cách này, họ có thể chạy cả trên cổng 80 và khớp tùy thuộc vào việc họ được gọi bởi http: // myserver1 hoặc http: // myserver2 .

Bây giờ làm thế nào để kết nối với dịch vụ của bạn? Bạn có thể định nghĩa các nhà cung cấp dịch vụ ngược dòng như

#place this outside of the 'server{' block
upstream server1 {
  server localhost:1234;
} 

và sau đó chuyển hướng đến nó thông qua

# place this inside the 'server{' block
location / {
  proxy_pass http://server1;
}
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.