前言
丹江口網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),丹江口網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為丹江口成百上千提供企業(yè)網(wǎng)站建設(shè)服務。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務好的丹江口做網(wǎng)站的公司定做!
Nginx是一款面向性能設(shè)計的HTTP服務器,相較于Apache、lighttpd具有占有內(nèi)存少,穩(wěn)定性高等優(yōu)勢。
由于現(xiàn)在需要部署nginx的docker,希望nginx配置文件里面有關(guān)server_name在啟動容器前動態(tài)修改。
工作原理
Nginx由內(nèi)核和模塊組成,其中,內(nèi)核的設(shè)計非常微小和簡潔,完成的工作也非常簡單,僅僅通過查找配置文件將客戶端請求映射到一個location block(location是Nginx配置中的一個指令,用于URL匹配),而在這個location中所配置的每個指令將會啟動不同的模塊去完成相應的工作。
Nginx的模塊從結(jié)構(gòu)上分為核心模塊、基礎(chǔ)模塊和第三方模塊:
核心模塊:HTTP模塊、EVENT模塊和MAIL模塊
基礎(chǔ)模塊:HTTP Access模塊、HTTP FastCGI模塊、HTTP Proxy模塊和HTTP Rewrite模塊,
學習envsubst
envsubst就是將環(huán)境變量替換文件里面指定標記的值。
[test]ip = ${ip}port = ${port}url = http://${ip}:${port}/index.htmlphone = ${phone}
當執(zhí)行export ip=192.168.1.5,export port=8081,export phone=13522223334寫入環(huán)境變量。
[test]ip = 192.168.1.5port = 8081url = http://192.168.1.5:8081/index.htmlphone = 13522223334
還可以指定只替換部分環(huán)境變量,source env.env && envsubst '$ip;$phone' < env.conf,這樣只會替換ip和phone這兩個變量。
應用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文件內(nèi)容如下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.confserver { 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; }}總結(jié)
經(jīng)過上述騷操作,最終可以通過環(huán)境變量的方式更新nginx的docker容器內(nèi)部配置文件。大功告成!
以上就是nginx配置文件使用環(huán)境變量的詳細內(nèi)容,更多關(guān)于nginx環(huán)境變量的資料請關(guān)注腳本之家其它相關(guān)文章!