Trong Nginx, sự khác nhau giữa các biến số $host
và $http_host
là gì.
Trả lời
$host
là biến của mô-đun Core.
$ host
Biến này là tương đương với dòng máy chủ trong tiêu đề của yêu cầu hoặc tên của máy chủ xử lý yêu cầu nếu tiêu đề chủ không phải là sẵn.
Biến này có thể có giá trị khác với $ http_host trong trường hợp như sau: 1) khi tiêu đề đầu vào Máy chủ không có hoặc có giá trị trống, $ host bằng giá trị của chỉ thị server_name; 2) khi giá trị của Máy chủ chứa số cổng, $ host không bao gồm số cổng đó. Giá trị của máy chủ lưu trữ $ luôn là chữ thường từ 0.8.17.
$http_host
cũng là một biến của các module tương tự, nhưng bạn sẽ không tìm thấy nó với cái tên đó vì nó được định nghĩa tổng quát như $http_HEADER
(ref).
$ http_HEADER
Giá trị của yêu cầu HTTP tiêu đề HEADER khi chuyển đổi sang chữ thường và với 'dấu gạch ngang' chuyển đổi sang 'dấu gạch', ví dụ $ http_user_agent, $ http_referer ...;
Tóm tắt:
$http_host
luôn tương đương với tiêu đềHTTP_HOST
yêu cầu.$host
bằng$http_host
, chữ thường và không có số cổng (nếu có), trừ khiHTTP_HOST
vắng mặt hoặc là một giá trị rỗng. Trong trường hợp đó,$host
bằng giá trị củaserver_name
chỉ thị của máy chủ đã xử lý yêu cầu.
- 1. Sự khác nhau giữa Host và tên miền trong các thông số Cookie PHP
- 2. Sự khác nhau giữa! = Và =! trong Java?
- 3. Sự khác nhau giữa | và || trong MATLAB?
- 4. Sự khác nhau giữa `% trong%` và `== '
- 5. sự khác biệt giữa apache/nginx/IIS
- 6. Sự khác biệt giữa --host và --target trong gcc là gì?
- 7. SuspiciousOperation không hợp lệ tiêu đề HTTP_HOST của Django
- 8. proxy nginx và chuyển hướng 404
- 9. sự khác nhau giữa ServiceHost và WebServiceHost là gì?
- 10. sự khác nhau giữa 'localhost' và '127.0.0.1' là gì?
- 11. Sự khác nhau giữa NoClassDefFoundError và ClassNotFoundException?
- 12. Sự khác nhau giữa PyMODINIT_FUNC và PyModule_Create
- 13. Sự khác nhau giữa ListBox và ListView
- 14. Sự khác nhau giữa OTL và SOCI
- 15. Sự khác nhau giữa REST và WebServices
- 16. Sự khác nhau giữa onClickListener và onItemClickListener
- 17. Sự khác nhau giữa System.DateTime.Now và System.DateTime.Today
- 18. Sự khác nhau giữa installshield và windowsinstaller
- 19. Sự khác nhau giữa presentModalViewController và presentViewController?
- 20. Sự khác nhau giữa TVar và TMVar
- 21. Sự khác nhau giữa tasklet và workqueue
- 22. Sự khác nhau giữa sys và os.sys
- 23. Sự khác nhau giữa form_for và form_tag?
- 24. Sự khác nhau giữa AlarmManager và ScheduledExecutorService
- 25. Sự khác nhau giữa ParameterInfo.DefaultValue và ParameterInfo.RawDefaultValue
- 26. Sự khác nhau giữa restartLoader và onContentChanged
- 27. Sự khác nhau giữa System.Web.UI.HtmlControls và System.Web.UI.WebControls
- 28. Sự khác nhau giữa ApacheActiveMQ và ApacheActiveMQApollo
- 29. Sự khác nhau giữa IIFE và gọi
- 30. Sự khác nhau giữa StreamReader.Read và StreamReader.ReadBlock
$ host là đặc biệt ** 'server_name' đầu tiên được xác định trong khối máy chủ hiện tại. nếu bạn có nhiều 'server_name', chỉ cái đầu tiên sẽ xuất hiện. –
Đúng. Trong thực tế, nó là khá điển hình để xác định: server_name example.com www.example.com; – glarrain
bạn cũng có thể có nhiều chỉ thị 'server_name'. nếu bạn tình cờ có một regex trong cái đầu tiên, nó sẽ trở thành '$ host', và tất cả những thứ xấu xí có thể xảy ra trong quá trình viết lại quy tắc. –