我在 docker 中有四个镜像,它们是两个服务,一个前端和一个反向代理。
当我使用时docker-compose up,它可以工作并且服务正在运行。
但是当我想使用kubectl apply -f在 pod 中运行时。日志中/etc/nginx/nginx.conf:11 中有[emerg] 1#1: host not found in upper "backend-user:8080" 。我对此一无所知。
这是我的图片:
bmjlearntocode/reverseproxy latest
bmjlearntocode/udacity-frontend local
bmjlearntocode/udacity-restapi-user latest
bmjlearntocode/udacity-restapi-feed latest
Run Code Online (Sandbox Code Playgroud)
这是docker-compose.yaml
version: "3"
services:
reverseproxy:
image: bmjlearntocode/reverseproxy
ports:
- 8080:8080
restart: always
depends_on:
- backend-user
- backend-feed
backend-user:
image: bmjlearntocode/udacity-restapi-user
volumes:
- $HOME/.aws:/root/.aws
environment:
POSTGRESS_USERNAME: $POSTGRESS_USERNAME
POSTGRESS_PASSWORD: $POSTGRESS_PASSWORD
POSTGRESS_DB: $POSTGRESS_DB
POSTGRESS_HOST: $POSTGRESS_HOST
AWS_REGION: $AWS_REGION
AWS_PROFILE: $AWS_PROFILE
AWS_BUCKET: $AWS_BUCKET
JWT_SECRET: $JWT_SECRET
URL: "http://localhost:8100"
backend-feed: …Run Code Online (Sandbox Code Playgroud) 我有以下 NGINX 配置
\nevents {}\n\nhttp {\n access_log /dev/stdout;\n error_log /dev/stderr;\n\n resolver 1.1.1.1 1.0.0.1 valid=5s ipv6=off; # CloudFlare DNS resolver\n\n upstream myupstream {\n server xyz.appspot.com:443;\n }\n\n server {\n server_name www. mywebsite.com;\n listen 80;\n\n set $myupstream "xyz.appspot.com:443";\n\n location ^~ /mypath/ {\n proxy_pass https://myupstream/theirpath/; # <-------- Case A - proxy_pass via UPSTREAM\n proxy_pass https://$myupstream/theirpath/; # <-------- Case B - proxy_pass via VARIABLE\n proxy_set_header Host "$myupstream";\n }\n }\n}\n\n# TEST_URL: http://www.mywebsite.com/mypath/framework.js\n# DESTINATION_URL: https://xyz.appspot.com:443/theirpath/framework.js\nRun Code Online (Sandbox Code Playgroud)\n问题出现在proxy_pass线路中