好物优选点击查看详情 京东购买

暂无内容

将NGINX设置为多个容器化服务的反向代理

您可以在docker内部网络上运行容器,默认情况下,docker-compose为容器的交互通信创建一个网络。可以修改端口以将应用程序公开给主机。当您尝试在主机网络上运行大多数应用程序时,可能有两个应用程序尝试使用相同的端口(如端口8080[在本例中]),一个端口只能由操作系统中的一个应用程序使用。请查看下面的代码片段以获取解决此问题的更多信息。

[端口映射<port on HOST>:<container port where app is exposed inside container>]

version: '3.2' services: se-kpi-sim: image: test-app:0.0.1 ports: - 5000:8080 restart: unless-stopped environment: MODEL_NAME: "model_final.pickle.dat" se-kpi-sim-ui: image: test-ui:0.0.3 ports: - 3000:8080 restart: unless-stopped reverse-proxy: image: test-proxy:0.0.7 ports: - 80:80 # this volume mount if you are using bitnami/nginx image volumes: - /path/to/my_server_block.conf:/opt/bitnami/nginx/conf/server_blocks/my_server_block.conf:ro restart: unless-stopped database: image: postgres environment: POSTGRES_PASSWORD: password POSTGRES_USER: kpi_sim_user POSTGRES_DB: kpi_sim POSTGRES_HOST_AUTH_METHOD: trust ports: - 5432:5432 volumes: - database:/var/lib/postgresql/data restart: unless-stopped volumes: database: 

为了将流量转发到特定应用程序,必须指定应用程序的IP地址或DNS名称。docker-composedocker-compose.yaml文件中定义的所有服务创建域名。

server { listen 0.0.0.0:80; listen [::]:80; location / { proxy_pass http://se-kpi-sim-ui:8080; } location /predict { proxy_pass http://se-kpi-sim:8080/predict; } location /aggregate { proxy_pass http://se-kpi-sim:8080/aggregate; } location /media/pictures { proxy_pass http://se-kpi-sim:8080/media/pictures; } access_log /opt/bitnami/nginx/logs/anomaly_access.log; error_log /opt/bitnami/nginx/logs/anomaly_error.log; } 

可以像这样挂载nginx.conf:[在bitnami/nginx图像中]

... volumes: - /path/to/my_server_block.conf:/opt/bitnami/nginx/conf/server_blocks/my_server_block.conf:ro ... 

注:以上均为解决该问题的参考示例。entrypoint容器可能会根据需要更改。

原文链接:https://www.5axxw.com/questions/content/im0wrx

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享