在proxy_pass nginx中使用环境变量 - 空宝网


在proxy_pass nginx中使用环境变量

我有nginx容器,我想将api调用转发给另一台服务器。我想从Docker Compose传递环境变量,以便能够更改站点,而无需重建Docker Image。

我的设置:

#docker-compose.yml

services:
web:
image: myimage
environment:
– SITE_URL: my-website.com
– API_URL: api-site.com
在nginx.conf中,我使用“modules / ngx_http_perl_module.so”中的perl_set来加载环境变量。

#default.conf

server {
listen 80;
listen [::]:80;
server_name $site_url;

location / {
return 301 https://$host$request_uri;
}

}

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name $site_url;
charset utf-8;

location / {
add_header Cache-Control ‘no-store’;
add_header Cache-Control ‘no-cache’;
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri /index.html;
}

location /api/ {
resolver 127.0.0.11 [::1];
proxy_pass https://$api_url/api/;
}
我试着关注这个问题:

如果我做:

location /api/ {
resolver 127.0.0.11 [::1];
set $api_test https://api-site.com$uri$is_args$args;
proxy_pass $api_test;
}
它工作正常,我可以使用$ api_test作为proxy_pass中的变量。但即使我做了https:// $ api_url $ uri $ is_args $ args我也无法使用api_url

下一页:  可可影视网www.maxzw.com影视资讯和在线

喜欢 (1)
[请支持作者一杯咖啡,谢谢]
分享 (0)


您必须 登录 才能发表评论!