gpt4 book ai didi

docker 通过 https 提供内容而没有域(仅具有公共(public) IP 地址)

转载 作者:行者123 更新时间:2023-12-04 22:42:08 25 4
gpt4 key购买 nike

我有两个不同的服务器。在服务器 1 我有一个域和一个 IP 地址,而在服务器 2 我只有一个公共(public) IP 地址。
在服务器 1 我托管网页,在服务器 2 我托管网络服务。
当我想从服务器 1 连接到服务器 2 时,出现以下错误:

This request has been blocked; the content must be served over HTTPS


我没有完成通过 HTTPS 提供来自 web 服务的内容。首先,我使用letsencrypt和nginx反向代理进行了尝试,但出现了无法使用SSL验证IP地址的错误。然后我在没有letsencrypt的情况下尝试了它,但后来我只通过http获取内容。当我只有一个没有域的公共(public) IP 地址时,如何使用 https 和 docker 提供我的内容?
这是我的 docker-compose 文件:
version: "3.3"

services:
proxy:
image: jwilder/nginx-proxy:alpine
container_name: proxy
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
### required for Let's Encrypt certificates
- nginx_certs:/etc/nginx/certs:ro
- nginx_vhosts:/etc/nginx/vhost.d
- nginx_html:/usr/share/nginx/html
restart: always
# letsencrypt:
# image: jrcs/letsencrypt-nginx-proxy-companion
# environment:
# ### ToDo: Change to your e-mail address
# - DEFAULT_EMAIL=XXX@gmail.com
# - NGINX_PROXY_CONTAINER=proxy
# volumes_from:
# - proxy
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock:ro
# - nginx_certs:/etc/nginx/certs:rw
# restart: always
whoami:
image: jwilder/whoami
environment:
- VIRTUAL_HOST=IP_ADDRESS
- VIRTUAL_PROTO=https
volumes:
#### NGINX reverse proxy container volumes
nginx_certs:
nginx_vhosts:
nginx_html:

最佳答案

我可以想到两种可能的解决方案:
1. 为您的域添加一个指向您的后端的 DNS 条目
如果您的域类似于 example.com ,您可以使用子域 api.example.com为您的后端。
在此处阅读有关如何使用子域的更多信息:How to add subdomain entry
2. 在 Docker Swarm 配置中添加两个服务器
如果将两台服务器都添加到 swarm 中,则可以通过可以加密的内部网络运行通信。
您可以在官方 Docker 文档中了解更多信息:https://docs.docker.com/network/overlay/
不过,我无法从您的问题中判断这是否适合您。

关于docker 通过 https 提供内容而没有域(仅具有公共(public) IP 地址),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68079531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com