簡體   English   中英

nginx:有沒有辦法避免在 nginx 配置文件中寫入服務器 ip 地址?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM