2014-04-22 15 views
7

Tôi là người mới bắt đầu ở nginx. Tôi có một máy chủ web đơn giản trên 8080 mà tôi muốn vượt qua tất cả lưu lượng truy cập đến trong môi trường khá nhỏ này. Proxy của tôi dường như hoạt động ngoại trừ một tiêu đề tùy chỉnh không có ở đó khi nó đến máy chủ ngược dòng của tôi. Khối máy chủ bên dưới. Tôi cần thêm điều gì để giữ tiêu đề tùy chỉnh của mình? Trong trường hợp này tiêu đề tùy chỉnh được đặt trong angularjs nhưng tôi không nghĩ rằng có bất cứ điều gì để làm với nó khi nó hoạt động tốt đi trực tiếp đến 8080 trên máy chủ. ($ httpProvider.defaults.headers.common ['GH_client'] = client_id();)proxy ngược nginx đơn giản dường như tách một số tiêu đề

server { 
server_name localhost; 

location/{ 
     proxy_pass  http://localhost:8080; 
     proxy_redirect off; 
    proxy_pass_header X-CSRF-TOKEN; 
     proxy_set_header Host    $host; 
     proxy_set_header X-Real-IP  $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-NginX-Proxy true; 
}} 

Cảm ơn sự giúp đỡ nào.

Trả lời

10

Tiêu đề của bạn chứa dấu gạch dưới (_). Theo mặc định, các tiêu đề mối đe dọa nginx có dấu gạch dưới là không hợp lệ và loại bỏ chúng.

Bạn nên bật chỉ thị underscores_in_headers.

Nếu không, hãy xem xét thay đổi tên tiêu đề thành một không có dấu gạch dưới. GH-client sẽ hoàn toàn hợp lệ và được ủy quyền cho máy chủ phụ trợ của bạn.

+0

Nếu bạn đang sử dụng nginx trong môi trường AWS, bạn có thể quan tâm [chủ đề này] (https://forums.aws.amazon.com/thread.jspa?messageID=674114) – BitsEvolved

+0

Cảm ơn. Tiêu đề CSRF mặc định của MVC .net mặc định là gạch dưới. Chúng tôi chạy vào ngày hôm nay. – BradLaney

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