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