2013-04-25 38 views
9

Tôi đang cố cấu hình nginx trên hai cổng với cùng một ví dụ, ví dụ trên cổng 80 và cổng 81, nhưng không may mắn cho đến nay. Dưới đây là ví dụ về những gì tôi đang cố gắng làm:Làm thế nào để chạy Nginx trên nhiều cổng

worker_processes 1; 

events { 
    worker_connections 1024; 
} 

http { 
    include  mime.types; 
    default_type application/octet-stream; 
    sendfile  on; 
    keepalive_timeout 65; 

    server { 
     listen 80; 
     server_name chat.local.com; 

     location/{ 
      proxy_pass http://127.0.0.1:8080; 
      proxy_http_version 1.1; 
      proxy_set_header Upgrade $http_upgrade; 
      proxy_set_header Connection "Upgrade"; 
      proxy_set_header Host $host; 
      proxy_buffering off; 

     } 
     error_page 500 502 503 504 /50x.html; 
     location = /50x.html { 
      root html; 
     } 

    } 

    server { 
     listen 81; 
     server_name console.local.com; 
     location/{ 
      proxy_pass http://127.0.0.1:8888; 
      proxy_http_version 1.1; 
      proxy_set_header Upgrade $http_upgrade; 
      proxy_set_header Connection "Upgrade"; 
      proxy_set_header Host $host; 
      proxy_buffering off; 
     } 
    } 
} 

Khi tôi cố gắng chạy console.local.com, nó hiển thị nội dung từ chat.local.com. Có cách nào để làm cho nginx chạy trên hai cổng? Cảm ơn trước!

Trả lời

7

cấu hình của bạn trông ok

Tôi nghĩ vấn đề là thế này (chính xác cho tôi nếu tôi sai):

  • bạn đã console.local.com lắng nghe trên cổng 81,
  • rằng có nghĩa là bạn cần truy cập nó như là http://console.local.com:81/
  • khi bạn truy cập nó dưới dạng http://console.local.com/ (không có cổng rõ ràng để mặc định thành cổng 80) nginx sẽ kiểm tra, lưu ý rằng lưu ý đang nghe trên cổng 80 cho tên máy chủ đó và chống đồng thời sẽ chuyển yêu cầu đến khối máy chủ mặc định. Kể từ khi máy chủ defaut-block là người đầu tiên (trong trường hợp không có cấu hình để thay đổi nó), bạn kết thúc trong việc xử lý chat.local.com.

Trong tất cả mất ổn định bạn muốn thay đổi console.local.com của bạn để lắng nghe trên cổng 80 cũng kể từ:

  • chỉ thị server_name trong cả serverblocks là đủ để phân biệt các yêu cầu
  • mà tránh bạn phải thêm: 81 vào tên miền trong các yêu cầu mọi lúc
+0

Hi Cobaco, tôi hoàn toàn quên điểm mà tôi cần truy cập trang bằng cổng 81. Cảm ơn bạn đã chỉ ra điểm đó. – Uday

3

Bạn có thể thêm câu lệnh nghe 2 lần đơn giản; như bên dưới
nghe 80;
nghe 81;

Điều này sẽ hoạt động với nginx

Các vấn đề liên quan