中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在nginx配置文件中使用環境變量

發布時間:2021-06-03 15:53:42 來源:億速云 閱讀:2526 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關如何在nginx配置文件中使用環境變量,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

前言

Nginx是一款面向性能設計的HTTP服務器,相較于Apache、lighttpd具有占有內存少,穩定性高等優勢。

由于現在需要部署nginx的docker,希望nginx配置文件里面有關server_name在啟動容器前動態修改。
但是由于nginx的配置文件不支持使用環境變量。網上找了好些方案,最終選擇使用envsubst的方式改寫nginx配置文件。

工作原理

Nginx由內核和模塊組成,其中,內核的設計非常微小和簡潔,完成的工作也非常簡單,僅僅通過查找配置文件將客戶端請求映射到一個location block(location是Nginx配置中的一個指令,用于URL匹配),而在這個location中所配置的每個指令將會啟動不同的模塊去完成相應的工作。

Nginx的模塊從結構上分為核心模塊、基礎模塊和第三方模塊:

核心模塊:HTTP模塊、EVENT模塊和MAIL模塊
基礎模塊:HTTP Access模塊、HTTP FastCGI模塊、HTTP Proxy模塊和HTTP Rewrite模塊,
第三方模塊:HTTP Upstream Request Hash模塊、Notice模塊和HTTP Access Key模塊。

學習envsubst

envsubst就是將環境變量替換文件里面指定標記的值。
例如有如下文件env.conf,內容如下

[test]
ip = ${ip}
port = ${port}
url = http://${ip}:${port}/index.html
phone = ${phone}

當執行export ip=192.168.1.5export port=8081export phone=13522223334寫入環境變量。
然后執行envsubst < env.conf > env.new.conf,就可以生成如下的env.new.conf

[test]
ip = 192.168.1.5
port = 8081
url = http://192.168.1.5:8081/index.html
phone = 13522223334

還可以指定只替換部分環境變量,source env.env && envsubst '$ip;$phone' < env.conf,這樣只會替換ip和phone這兩個變量。
上面只替換部分環境變量,在Linux測試只能用單引號,用雙引號無效,分隔符試過, . ; |這四種都可以,我估計還有更多分隔符。

應用nginx配置文件

docker-compose.yml文件如下

version: "3"
 
services:
  nginx:
    image: nginx:1.20.1-alpine
    container_name: nginx
    ports:
      - 80:80
      - 443:443
    environment:
      - NGINX_HOST=www.janbar.com
      - NGINX_PORT=80
    volumes:
      - /root/janbar.temp:/etc/nginx/conf.d/janbar.temp
    command: /bin/sh -c "envsubst < /etc/nginx/conf.d/janbar.temp > /etc/nginx/conf.d/default.conf && exec nginx -g 'daemon off;'"
    network_mode: bridge
    restart: always

/root/janbar.temp文件內容如下

server {
    listen       ${NGINX_PORT};
    listen  [::]:${NGINX_PORT};
    server_name  ${NGINX_HOST};

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

按照上述docker-compose.yml配置文件最終生成docker容器里面的配置文件如下cat /etc/nginx/conf.d/default.conf

server {
    listen       80;
    listen  [::]:80;
    server_name  www.janbar.com;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

上述就是小編為大家分享的如何在nginx配置文件中使用環境變量了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

刚察县| 洛阳市| 富锦市| 莱阳市| 合山市| 新建县| 永嘉县| 冕宁县| 沅陵县| 吉木萨尔县| 安庆市| 辉南县| 津市市| 南涧| 胶州市| 辰溪县| 子洲县| 秦皇岛市| 沙洋县| 桂平市| 灵山县| 金昌市| 睢宁县| 龙海市| 浏阳市| 张家港市| 光泽县| 汤原县| 东乌珠穆沁旗| 桃江县| 阿拉善盟| 伊宁市| 亚东县| 化州市| 桦南县| 达尔| 洪江市| 迁安市| 南丹县| 孙吴县| 稻城县|