[英]nginx: Is there any way to avoid wriring server ip address in nginx config file?
我在一個簡單的快速應用程序中使用 nginx 作為反向代理。 在我的配置文件中,我使用了服務器 ip( http://45.33.97.232/ )作為 server_name。
但是有什么方法可以避免在這個文件中寫入實際的服務器 ip 而不會破壞任何東西?
server {
listen 80 default_server;
server_name 45.33.97.232;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://45.33.97.232:3000; #port where you are serving your express app.
}
}
是的。 通過在listen
指令中設置default_server
標志並將服務器名稱設置為任何無效的域名。 通常名稱_
用於 nginx 示例配置文件,但這可以是任何無效的域名,例如!
ETC:
server {
listen 80 default_server;
server_name _;
...
}
有關更多信息,請參閱http://nginx.org/en/docs/http/server_names.html#miscellaneous_names 。
請注意,有一個特殊的服務器名稱具有其他含義。 如果您需要為不發送Host
header 的客戶端提供服務(例如 HTTP/1.0 客戶端),則使用空字符串表示該服務器塊是為此類客戶端提供服務的塊。 因此 server_name 可以設置為兩個雙引號 ( ""
) 以表示空字符串:
server {
listen 80;
server_name "";
...
}
請注意,這並不像上面的_
那樣將 function 作為一個包羅萬象的域名。 相反,它會捕獲帶有空主機 header 的請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.