我正在使用带有 apache2 的 raspberry pi 来管理我的网站。我有多个在不同端口上运行的 docker 镜像。我想重定向(不更改 url) scanner.raspberry.local
到localhost:1234
。为此,我遵循了以下两篇帖子:
最后,我只有一个虚拟主机在工作(第一个)。这是我的配置:
# 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,但结果是一样的,第一个虚拟主机可以工作,但第二个虚拟主机(子域名)无法通过 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,并且我已将适当的配置添加到我的/etc/host
和c:\Windows\System32\Drivers\etc\hosts
(WSL/Windows)。
我知道有很多关于 apache2 配置的帖子。但我找不到任何有同样问题的帖子。
答案1
扫描仪:不工作:当我使用 cURL 时“无法解析主机”
这意味着curl
无法解析域名的 IP 地址。这意味着未配置目标域的 DNS 条目。
DNS 配置与 Apache2 和 nginx 配置无关。
答案2
为了解决这个问题,我安装了域名系统,配置它, 和将 DNS 服务器添加到/etc/resolve.conf
。
现在,x.subdomain.local
如果我在每台机器上添加我的 DNS 服务器,我就可以通过 cURL 进行访问。