如何解决为什么我的Docker网络会在每个请求上返回不同的应用程序
我有2个可在docker网络上进行交互的laravel应用程序。 该架构看起来像:
- /项目
- /核心(后端)
- / portal(前端)
在构建应用程序时,我将从构建后端(docker-compose up -d --build
)开始以创建前端使用的网络。 (应用程序共享-> core-backend_app-shared)
在`http:// localhost:8081 /上测试后端似乎表明我没有任何问题。后端应用程序符合我的期望。
问题是当我测试门户网站前端http://localhost:8080/
时。 有时提供前端应用程序,而有时提供后端应用程序。刷新页面时有50/50的机会(导致404错误)。
预期的行为是http://localhost:8081/
返回后端应用程序,而http://localhost:8080/
返回前端(始终)。
任何人都可以帮助我,或者将我指向可能导致这种行为的方向吗?
核心docker-compose.yml
version: '3'
#Docker Networks
networks:
laravel:
app-shared:
driver: bridge
services:
#PHP Service
app:
build:
context: .
dockerfile: Dockerfile
container_name: app_core
restart: "no"
tty: true
ports:
- "9001:9000"
environment:
SERVICE_NAME: app
SERVICE_TAGS: dev
working_dir: /var/www
volumes:
- ./:/var/www
- ./build/php/local.ini:/usr/local/etc/php/conf.d/local.ini
networks:
- laravel
- app-shared
#Nginx Service
webserver:
image: nginx:alpine
container_name: nginx_core
restart: unless-stopped
tty: true
ports:
- "8081:80"
- "444:443"
volumes:
- ./:/var/www
- ./build/nginx/conf.d/:/etc/nginx/conf.d/
networks:
- laravel
- app-shared
portal docker-compose.yml
version: '3'
#Docker Networks
networks:
core-backend_app-shared:
external: true
laravel:
services:
#PHP Service
app:
build:
context: .
dockerfile: Dockerfile
container_name: app_portal
restart: "no"
tty: true
ports:
- "9000:9000"
environment:
SERVICE_NAME: app
SERVICE_TAGS: dev
working_dir: /var/www
volumes:
- ./:/var/www
- ./build/php/local.ini:/usr/local/etc/php/conf.d/local.ini
networks:
- core-backend_app-shared
- laravel
#Nginx Service
webserver:
image: nginx:alpine
container_name: nginx_portal
restart: unless-stopped
tty: true
ports:
- "8080:80"
- "443:443"
volumes:
- ./:/var/www
- ./build/nginx/conf.d/:/etc/nginx/conf.d/
networks:
- core-backend_app-shared
- laravel
Nginx .conf(后端和前端(在它们各自的目录中)是相同的,但是我尝试将后端.conf更改为侦听端口81,并将后端Web服务器更改为-“ 8081:81”,而没有成功。同样的问题也会发生
listen 80;
index index.php index.html;
server_name localhost:8080;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/public;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_read_timeout 300;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
gzip_static on;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。