
https、mysql、およびdocker-composeを使用してdebian 10 VMでnextcloud設定を作成しようとしていますが、アクセスするときhttps://cloud.example.org私のブラウザにアクセスできないと表示されます。リンクに乗ってみるとhttps://example.orgこのページは次のとおりです。
例示ドメイン
このフィールドは文書の例に使用されます。事前調整や許可なしに、あなたの文献にこのドメイン名を使用することができます。
これは私のdocker-compose.ymlファイルです。
version: '3'
services:
nginx-proxy:
image: jwilder/nginx-proxy:alpine
labels:
- "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true"
container_name: nextcloud-proxy
networks:
- nextcloud_network
ports:
- 80:80
- 443:443
volumes:
- /home/dev/nextcloud-data/nginx/vhost.d:/etc/nginx/vhost.d:rw
- /home/dev/nextcloud-data/nginx/html:/usr/share/nginx/html:rw
- /home/dev/nextcloud-data/nginx/certs:/etc/nginx/certs:ro
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/tmp/docker.sock:ro
restart: unless-stopped
letsencrypt:
image: jrcs/letsencrypt-nginx-proxy-companion
container_name: nextcloud-letsencrypt
depends_on:
- nginx-proxy
networks:
- nextcloud_network
volumes:
- /home/dev/nextcloud-data/nginx/vhost.d:/etc/nginx/vhost.d:rw
- /home/dev/nextcloud-data/nginx/html:/usr/share/nginx/html:rw
- /home/dev/nextcloud-data/nginx/certs:/etc/nginx/certs:rw
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
restart: unless-stopped
mysql:
image: mariadb
container_name: nextcloud-mysql
networks:
- nextcloud_network
volumes:
- /home/dev/nextcloud-data/database/mysql:/var/lib/mysql
- /etc/localtime:/etc/localtime:ro
environment:
- MYSQL_ROOT_PASSWORD=mysql_root_testpassword
- MYSQL_PASSOWRD=nexcloud_testp@ssw0rd
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
restart: unless-stopped
nextcloud-app:
image: nextcloud:latest
container_name: nextcloud-app
networks:
- nextcloud_network
depends_on:
- letsencrypt
- nginx-proxy
- mysql
volumes:
- /home/dev/nextcloud-data/data/html:/var/www/html
- /home/dev/nextcloud-data/data/config:/var/www/html/config
- /home/dev/nextcloud-data/data/data:/var/www/html/data
- /home/dev/nextcloud-data/data/themes:/var/www/html/themes
- /etc/localtime:/etc/localtime:ro
environment:
- VIRTUAL_HOST=cloud.example.org
- LETSENCRYPT_HOST=cloud.example.org
- [email protected]
restart: unless-stopped
networks:
nextcloud_network:
このコマンドを実行すると:
curl -I https://example.org
出力は次のとおりです
HTTP/2 200
content-encoding: gzip
accept-ranges: bytes
age: 427989
cache-control: max-age=604800
content-type: text/html; charset=UTF-8
date: Tue, 21 Sep 2021 18:33:43 GMT
etag: "3147526947"
expires: Tue, 28 Sep 2021 18:33:43 GMT
last-modified: Thu, 17 Oct 2019 07:18:26 GMT
server: ECS (dcb/7EEF)
x-cache: HIT
content-length: 648
コマンド用
curl -I https://cloud.example.org
出力は次のとおりです
curl: (6) Could not resolve host: cloud.example.org
答え1
URLは人間にのみ存在し、マシンはIPアドレスを使用します。ブラウザがそのアドレスを指すと、システムは実際にDNSルックアップを実行してそのIPアドレスを見つけて接続します。https://example.com文書化の目的でIANAが提供するWebページで、Webサービスを実行する物理システムがあり、実際のIPアドレスがあり、それにアクセスできる対応するDNSエントリがあります。
cloud.example.comにアクセスできないのは、そのDNS名を介してアクセスできるサービスを誰も提供しないからです。したがって、対応するIPアドレスとDNSエントリはありません。 IANAは文書化の目的でexample.comを保持しているため、そのサブドメイン(例:cloud.example.com)はトレーニング資料の例としてよく使用されます。
テストにこのDNS名を使用するには、独自のイントラネットにサーバーを設定していくつかのサービスを提供できます。内部DNSサーバーを設定して適切なエントリを作成したり、アクセスしたいシステムのホストファイルに名前と対応する(プライベート)IPアドレスを簡単に追加することもできます。