Apache 2.4.41 -无法在本地主机上连接多个虚拟主机/ ubuntu 20.04



我已经在笔记本电脑上安装了apache2,并创建了一个虚拟主机用于开发站点。这工作得很好。我现在需要添加第二个站点,并且遇到了问题,尽管设置与第一个(工作)vhost配置相同。

当我访问第二个站点时,请求被重定向到https(即使定义了http),并且浏览器返回"无法连接"。错误页面。

http://dev.mysite.co。英国比;加载好

http://dev.mysite2.co。英国比;重定向到https://dev.mysite2.co.uk,"无法连接"。消息

我在过去的几个晚上研究了这个问题,并尝试了许多建议,包括www/dir权限,但都没有成功。

站点1配置,位于/etc/apache2/sites-available(工作正常):

<VirtualHost *:80>
ServerName dev.mysite1.co.uk
DocumentRoot /var/www/mysite1/public_html
<Directory /var/www/mysite1/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/mysite1.co.uk-error.log
CustomLog ${APACHE_LOG_DIR}/mysite1.co.uk-access.log combined 
</VirtualHost>

站点2配置,位于/etc/apache2/sites-available:

<VirtualHost *:80>
ServerName dev.mysite2.co.uk
DocumentRoot /var/www/mysite2/public_html
<Directory /var/www/mysite2/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/mysite2.co.uk-error.log
CustomLog ${APACHE_LOG_DIR}/mysite2.co.uk-access.log combined
</VirtualHost>

/etc/hosts文件:

127.0.0.1   localhost
127.0.0.1   dev.site2.co.uk
127.0.0.1   dev.site1.co.uk 
127.0.0.1   phpmyadmin
127.0.1.1   mymachine
# The following lines are desirable for IPv6 capable hosts ::1     ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters

apachectl configtest:

AH00558: apache2:无法可靠地确定服务器的完全限定域名,使用127.0.1.1。全局设置'ServerName'指令以禁用此消息语法好

(我之前设置了"服务器名localhost"在apache2.conf中,它删除了第一个FQDN消息,但没有影响我遇到的问题)。两者都有指向/etc/apache2/sites-enabled中的vhost配置的符号链接。Apache2.conf是标准安装/默认不是标准安装。禁用浏览器扩展/不同浏览器的结果相同。

ls -ld/var/www/site1:

drwxrwxrwx 10 me me 4096 Jan 15 20:50/var/www/site1

ls -ld/var/www/site2:

drwxrwxr-x 9 me www-data 4096 May 17 22:45/var/www/site2

site2是否具有www-data权限?哪个应该是apache用户可读的?

chown -R 755/var/www无差异

也意识到http://localhost也重定向到https://localhost,并且"无法连接";消息。

http://localhost/phpmyadmin工作正常

apachectl -S:

输出
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message VirtualHost configuration:
*:80                   is a NameVirtualHost
default server dev.site1.co.uk (/etc/apache2/sites-enabled/site1.conf:1)
port 80 namevhost dev.site1.co.uk (/etc/apache2/sites-enabled/site1.conf:1)
port 80 namevhost dev.site2.co.uk (/etc/apache2/sites-enabled/site2.conf:1) 
ServerRoot: "/etc/apache2" 
Main DocumentRoot: "/var/www/html" 
Main ErrorLog: "/var/log/apache2/error.log" 
Mutex default: dir="/var/run/apache2/" mechanism=default  
Mutex mpm-accept: using_defaults 
Mutex watchdog-callback: using_defaults 
Mutex rewrite-map: using_defaults 
PidFile: "/var/run/apache2/apache2.pid" 
Define: DUMP_VHOSTS 
Define: DUMP_RUN_CFG 
User: name="www-data" id=33 not_used 
Group: name="www-data" id=33 not_used

你的问题提到了5个不同的主机名。

  • dev.mysite.co.uk
  • dev.mysite1.co.uk
  • dev.mysite2.co.uk
  • dev.site1.co.uk
  • dev.site2.co.uk

apache配置与apachectl输出和/etc/hosts内容不匹配。

那么,你编辑了一些

以下是猜测,因为不知道哪些部分被编辑了。

这可能会发生吗?对于第一个站点,一切正常,但对于第二个站点,您的请求与配置或主机条目不匹配,因此浏览器尝试https并失败,因为dev.site2.co.。英国和dev.mysite2.co。

您可以查看日志文件,看看情况是否如此:如果没有[my]site2的日志条目,则主机条目可能是罪魁祸首。

这个问题可能与301重定向缓存有关。例如:在过去,你设置了一个301重定向(永久移动)到https,现在它被缓存在浏览器(s)。

如果是这种情况,以下链接可能有助于找到解决方案:

  • 浏览器缓存HTTP 301多长时间?
  • 清除301/302重定向缓存(Chrome)

注意:您可以先尝试与浏览器,,没有使用特定的域在过去,或curl/wget,检查它们是否面临相同的问题。如果不是,很可能是缓存问题。

其他可能原因:

  • 一个浏览器插件操作的概念(https无处不在)(但正如你所说:"浏览器扩展禁用/相同的结果在不同的浏览器。")
  • iptables重定向http到https的规则。
  • 一些被遗忘的apache规则在所有域中运行

关于dev.mysite.co.uk的注意事项:您提到它工作正常,但我没有看到关于该域的任何配置。是打错了吗?

相关内容

  • 没有找到相关文章

最新更新