国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

nginx配置文件使用環(huán)境變量的操作方法

發(fā)布時(shí)間:2021-08-15 18:37 來(lái)源: 閱讀:0 作者:janbar 欄目: 服務(wù)器 歡迎投稿:712375056

前言

Nginx是一款面向性能設計的HTTP服務(wù)器,相較于A(yíng)pache、lighttpd具有占有內存少,穩定性高等優(yōu)勢。

由于現在需要部署nginx的docker,希望nginx配置文件里面有關(guān)server_name在啟動(dòng)容器前動(dòng)態(tài)修改。
但是由于nginx的配置文件不支持使用環(huán)境變量。網(wǎng)上找了好些方案,最終選擇使用envsubst的方式改寫(xiě)nginx配置文件。

工作原理

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

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

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

學(xué)習envsubst

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

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

當執行export ip=192.168.1.5,export port=8081,export phone=13522223334寫(xiě)入環(huán)境變量。
然后執行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

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

應用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;
    }
}

總結

經(jīng)過(guò)上述騷操作,最終可以通過(guò)環(huán)境變量的方式更新nginx的docker容器內部配置文件。大功告成!

以上就是nginx配置文件使用環(huán)境變量的詳細內容,更多關(guān)于nginx環(huán)境變量的資料請關(guān)注腳本之家其它相關(guān)文章!

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

丰满岳乱妇一区二区三区| 亚洲啪啪综合AV一区| 国模丽丽啪啪一区二区| 欧美性大战XXXXX久久久| 男女裸交免费无遮挡全过程| 亚洲精品1卡2卡三卡23卡|