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

暂无内容

docker和nginx。如何反向代理多个postgresql数据库

我有一个带有多个postgresql数据库的docker容器。

version: "3.7" services: nginx: image: nginx:1.18.0-alpine ports: - 8028:80 volumes: - ./nginx/localhost/conf.d:/etc/nginx/conf.d depends_on: - webapp networks: - postgresql_network postgresql: image: "postgres:13-alpine" restart: always volumes: - type: bind source: ../DO_NOT_DELETE_POSTGRESQL_DATA target: /var/lib/postgresql/data environment: POSTGRES_DB: db1 POSTGRES_USER: simha POSTGRES_PASSWORD: krishna PGDATA: "/var/lib/postgresql/data/pgdata" networks: - postgresql_network postgresql2: image: "postgres:13-alpine" restart: always volumes: - type: bind source: ../DO_NOT_DELETE_POSTGRESQL_DATA2 target: /var/lib/postgresql/data environment: POSTGRES_DB: db2 POSTGRES_USER: simha POSTGRES_PASSWORD: krishna PGDATA: "/var/lib/postgresql/data/pgdata" networks: - postgresql_network networks: postgresql_network: driver: bridge 

现在我可以为每个postgresq实例暴露两个不同的端口,并从主机上访问它们(如localhost 5432和localhost 5445)。

但我想用不同的域名来处理它们,而不是这样。

pg1.docker.db,端口8028(nginx端口)和pg.docker.dbdb,端口8028(nginx端口),并使用nginx反向代理它们在内部使用postgresqlpostgresql2到不同的docker容器。

而在主机/etc/hosts中,我将有

127.0.0.1 pg1.docker.db 127.0.0.1 pg2.docker.db 

我不确定,但类似的事情。谁能说我做得对吗?

## WEBSERVER upstream webapp { server webapp:8000; } server { listen 80; location / { proxy_pass http://webapp; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; } } ## POSTGRESQL DBS upstream postgres { server postgresql:5432; } upstream postgres2 { server postgresql2:5432; } server { listen 80 so_keepalive=on; server_name db1.domain.my; proxy_pass postgres; } server { listen 80 so_keepalive=on; server_name db2.domain.my; proxy_pass postgres2; } 

我发现人们使用streamhttp。上述方法是否也能工作。或者我应该做一些

原文链接:https://www.qiniu.com/qfans/qnso-68870662

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