Điểm:0

nginx đảo ngược máy chủ ngược dòng cú pháp tên

lá cờ jp

Tôi rất cảm kích nếu ai đó có thể giúp tôi. Tôi vừa cố gắng tìm hiểu proxy ngược nginx nhưng đã gặp phải một số vấn đề về cú pháp tên ngược dòng.

Xin vui lòng tham khảo bức ảnh này Ảnh: cấu trúc máy chủ proxy ngược nginx

Khi tôi cuộn tròn 192.168.189.140, máy chủ proxy hiển thị

  1. [gỡ lỗi] vhost.c(811): [máy khách 192.168.189.140] [nghiêm ngặt] Tên máy chủ 'bbs_server_pools' không hợp lệ, sự cố gần: _serve

  2. [gỡ lỗi] vhost.c(902): [máy khách 192.168.189.140] Máy khách đã gửi không đúng định dạng Tiêu đề máy chủ: bbs_server_pools

Sau khi tôi đổi tên ngược dòng bbs_server_pools thành bbs, nó hoạt động tốt. Đây có phải là điều gì đó liên quan đến phiên bản nginx hay cái gì khác không?

  1. lỗi tập tin Nginx.conf

    worker_processes 1;
    nhật ký error_log/error.log lỗi;
    
    sự kiện {
    công_nhân kết_nối 1024 ;
    }
    
    http {
    bao gồm mime.types;
    ứng dụng default_type/octet-stream;
    gửi tệp trên;
    keepalive_timeout 65;
    log_format chính '$remote_addr - $remote_user [$time_local] "$request"'
                    '$status $body_bytes_sent "$http_referer"'
                    '"$http_user_agent" "$http_x_forwarded_for"';
    
    người phục vụ {
    nghe 80;
    server_name bbs.etiantian.org;
    địa điểm / {
         proxy_pass http://bbs_server_pools;   
       } 
    }    
    
    ngược dòng bbs_server_pools {
    máy chủ 192.168.189.137:80;
    máy chủ 192.168.189.138:80 trọng lượng=3;
    }  
    
    
    }
    
  2. tệp nginx.conf tốt sau khi thay đổi bbs_server_pools thành bbs

    worker_processes 1;
    nhật ký error_log/error.log lỗi;
    
    sự kiện {
    công_nhân kết_nối 1024 ;
    }
    
    http {
    bao gồm mime.types;
    ứng dụng default_type/octet-stream;
    gửi tệp trên;
    keepalive_timeout 65;
    log_format chính '$remote_addr - $remote_user [$time_local] "$request"'
                    '$status $body_bytes_sent "$http_referer"'
                    '"$http_user_agent" "$http_x_forwarded_for"';
    
    người phục vụ {
    nghe 80;
    server_name bbs.etiantian.org;
    địa điểm / {
         proxy_pass http://bbs;   
       } 
    }    
    
    ngược dòng bbs {
    máy chủ 192.168.189.137:80;
    máy chủ 192.168.189.138:80 trọng lượng=3;
    }  
    
    
    }
    
Điểm:0
lá cờ gr

Lỗi này không liên quan gì đến bản thân nginx (tốt, hầu như không có gì). Nó được trả về bởi chương trình phụ trợ ngược dòng của bạn. Lý do là hai tiêu đề yêu cầu HTTP bao gồm Chủ nhà một luôn được xác định lại trừ khi một số hành vi khác được chỉ định rõ ràng bằng cách sử dụng proxy_set_header chỉ thị:

Theo mặc định, chỉ có hai trường được xác định lại:

proxy_set_header Máy chủ $proxy_host;
proxy_set_header Đóng kết nối;

Các Chủ nhà giá trị tiêu đề của yêu cầu được chuyển tiếp sẽ là bbs_server_pools với cấu hình đầu tiên của bạn và bbs với cái thứ hai. Tuy nhiên, các ký tự hợp lệ cho tên máy chủ là các chữ cái ASCII từ một đến z, các chữ số từ 0 đến 9, và dấu gạch nối (-).Mặc dù dấu gạch dưới là một ký tự hợp lệ cho tên ngược dòng nginx, nhưng nó không hợp lệ cho tên máy chủ và đó là nguyên nhân gây ra lỗi mà bạn gặp phải khi ngược dòng. Thông thường, nên giữ Chủ nhà giá trị tiêu đề từ yêu cầu ban đầu bằng cách sử dụng

proxy_set_header Máy chủ lưu trữ $host;

(hoặc $http_host, bạn có thể kiểm tra sự khác biệt đây). Tuy nhiên, có thể có những trường hợp bạn không nên làm điều đó; kiểm tra cái này answer để tìm hiểu thêm thông tin về chủ đề này.

lá cờ jp
Xin chào Ivan! Cám ơn rất nhiều! Câu trả lời của bạn đã giải quyết vấn đề của tôi hoàn toàn
Ivan Shatsky avatar
lá cờ gr
Cách ServerFault cảm ơn vì câu trả lời hiệu quả được mô tả [tại đây](https://serverfault.com/tour#:~:text=The%20person%20who%20asked%20can%20mark%20one%20answer%20as%20% 22được chấp nhận%22.) :)

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