%20%E3%81%8C%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%AA%E3%81%84%20(Apache2%20%E3%81%A8%20Nginx%20%E3%81%A7%E8%A9%A6%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F).png)
私はウェブサイトの管理にApache2を搭載したRaspberry Piを使用しています。異なるポートで複数のDockerイメージを実行しています。URLを変更せずに scanner.raspberry.local
にリダイレクトしたいと考えていますlocalhost:1234
。そのために、次の2つの投稿に従いました。
最終的に、動作する仮想ホストは 1 つだけです (最初のもの)。これが私の設定です:
# Home page : working properly
<VirtualHost *:80>
ServerName raspberry.local
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
ErrorLog ${APACHE_LOG_DIR}/error-homer.log
CustomLog ${APACHE_LOG_DIR}/access-homer.log combined
</VirtualHost>
# Scanner : not working : "could not resolve host" when I cURL
<VirtualHost *:80>
ServerName scan.raspberry.local
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://localhost:1234/
ProxyPassReverse / http://localhost:1234/
ErrorLog ${APACHE_LOG_DIR}/error-scan.log
CustomLog ${APACHE_LOG_DIR}/access-scan.log combined
</VirtualHost>
nginxをインストールしてみましたが、結局同じ結果になりました。最初の仮想ホストは機能しますが、2番目の仮想ホスト(サブドメイン)は、サーバー上で直接cURL経由でも解決できませんでした。これ助けになる投稿。私はこう締めくくりました:
server {
listen 80;
server_name raspberry.local;
location / {
proxy_pass http://localhost:8080;
}
}
server {
listen 80;
server_name scan.raspberry.local;
location / {
proxy_pass http://localhost:1234;
}
}
ログ ファイルにエラーはなく、 を使用するとapache2ctl -S
問題なく仮想ホストが検出されます。 を使用した場合も同様です。 、およびモジュールapache2ctl configtest
を有効にしました。また、 の設定は( からのシンボリック リンク)で適切に有効になっています。proxy
proxy_http
rewrite
/etc/apache2/sites-enabled/000-default.conf
sites-available
私のシステム:
- Ubuntu 22.04 上の Raspberry Pi 4 8Gb
また、私は Pi でホストされている VPN を使用しており、適切な構成を(WSL/Windows)/etc/host
に追加しました。c:\Windows\System32\Drivers\etc\hosts
apache2 の設定に関する投稿がたくさんあることは知っています。しかし、同じ問題に関する投稿は見つかりません。
答え1
スキャナー: 動作しない: cURL 時に「ホストを解決できませんでした」
これは、curl
ドメイン名の IP アドレスを解決できないことを意味します。つまり、宛先ドメインの DNS エントリが設定されていないことを意味します。
DNS 設定は Apache2 や nginx 設定とは関係ありません。
答え2
これを解決するために、私はインストールしましたdnsmasq、設定した、 そしてDNSサーバーを追加しました/etc/resolve.conf
。
x.subdomain.local
これで、各マシンに DNS サーバーを追加すると、cURL を実行できるようになります。