簡體   English   中英

Nginx.conf可以訪問環境變量嗎?

[英]Can nginx.conf access environment variables?

我正在嘗試在kubernetes集群上使用Nginx運行Docker容器。 我正在對所有其他容器使用環境變量服務發現,因此我想保持它的一致性,而不必僅僅因為此而將諸如skydns之類的東西引入混合。 是否可以訪問nginx中的環境變量,以便我可以告訴它代理傳遞給kubernetes服務?

您的意思是在Nginx的配置文件中使用以這種方式設置的env var的值? 我過去做過的一件事是擁有一個由Docker容器運行的run.sh配置腳本,該腳本使用env變量來影響nginx配置的模板文件中的變電站-這是您的意思嗎?

進行hacked HEREDOC時會遇到很多問題,包括僅進行一次一次性服務發現(並不比硬編碼好得多)。 因此,我的解決方案最終是使用confd模板化nginx並在環境變量更改時重新啟動nginx。 這是confd的鏈接: https : //github.com/kelseyhightower/confd

將包含的配置文件作為卷掛載在ConfigMap中也應該起作用。

不過,您可能需要為此更改配置文件的結構。

在規范中,您可以定義環境變量,例如

spec:
  containers:
  - name: kibana-logging
    image: gcr.io/google_containers/kibana:1.3
    livenessProbe:
      name: kibana-liveness
      httpGet:
        path: /
        port: 5601
      initialDelaySeconds: 30
      timeoutSeconds: 5
    env:
      - name: "ELASTICSEARCH_URL"
        value: "http://elasticsearch-logging:9200"
    ports:
    - containerPort: 5601
      name: kibana-port
      protocol: TCP

這將導致環境變量ELASTICSEARCH_URL設置為http:// elasticsearch -logging:9200 這對您有用嗎?

干杯,

薩特南

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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