标签: virtualhost

我从未听说过的域名解析到我的网站

我发现(通过查看 mod_pagespeed 缓存条目)一个我以前从未听说过的完全随机域正在解析到我的网站。

如果我访问这个域,我的网站就会加载。该域的 DNS 指向我服务器的 IP。

现在在我的 vhost 配置中我有 *:80,我猜这是我出错的地方。

我立即将其更改为 example.com:80,其中 example.com 是我的域。假设这意味着服务器只会响应和满足对我的域名的请求,而不是端口 80 上的任何请求。

我原来的 vhost 配置;

<VirtualHost *:80>
    DocumentRoot "/var/www/example.com"
    <Directory "/var/www/example.com">
        Order allow,deny
        Allow from all
        Allowoverride all
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我新尝试的配置;

Listen 80
ServerName example.com

<VirtualHost example.com:80>
    DocumentRoot "/var/www/example.com"
    <Directory "/var/www/example.com">
        Order allow,deny
        Allow from all
        Allowoverride all
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

当我尝试使用新配置重新启动 apache 时,出现以下错误:

 * Restarting web server apache2 [Fri Mar 28  08:55:47.821904 2014] [core:error] [pid 5555] (EAI 2)Name or service not known: AH00549: Failed to …
Run Code Online (Sandbox Code Playgroud)

domain-name-system linux ubuntu virtualhost apache-2.2

25
推荐指数
1
解决办法
6333
查看次数

如何解决apache2 httpd错误“不支持将*端口和非*端口与NameVirtualHost地址混合使用”

这是我在启动 Apache2 时遇到的错误:

 * Starting web server apache2
 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] …
Run Code Online (Sandbox Code Playgroud)

virtualhost apache-2.2

24
推荐指数
3
解决办法
5万
查看次数

Nginx 禁用 .htaccess 和隐藏文件但允许 .well-known 目录

我有一个 Nginx 服务器,并禁用了隐藏文件 nginx_vhost.conf

## Disable .htaccess and other hidden files
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }
Run Code Online (Sandbox Code Playgroud)

但是 LetsEncrypt 需要访问该 .well-known目录。

如何允许.well-known目录并拒绝其他隐藏文件?

nginx virtualhost lets-encrypt

24
推荐指数
3
解决办法
4万
查看次数

如何在 MAMP 上设置多个网站/虚拟主机?

您如何配置MAMP以同时管理/托管多个网站以进行开发?

virtualhost mamp apache-2.2

22
推荐指数
1
解决办法
3万
查看次数

仅当浏览器支持 SNI 时才重定向到 SSL

我有带有 mod_ssl 的 Apache 2.2 和一堆 HTTPS 站点,位于与 VirtualHosting 相同的 IP/端口上,因此客户端必须支持 SNI 才能连接到这些虚拟主机。

我想通过以下方式配置我的服务器:

当用户输入 www.dummysite.com 并且他的浏览器支持SNI(服务器名称指示)时,任何 HTTP 请求都会被重定向到https://发送 HSTS 标头的位置。但如果浏览器不支持SNI,则请求由 HTTP 提供。

上面的规则,按原样陈述,实际上是那些仍然运行旧浏览器的人的后备规则,因为 Mozilla 和 Chrome 没有这个问题,只是为了避免让这些用户离开网站。

我想在 Apache 配置级别执行此重定向,可能在用户代理上使用过滤器。我不想触摸正在运行的应用程序,除非确保不存在直接的 http:// 引用(否则它们意味着安全警告)

[编辑](在编辑问题时我忘记问题):要重定向的启用 SNI 的用户代理列表是什么?

ssl virtualhost sni apache-2.2

21
推荐指数
2
解决办法
2万
查看次数

“服务器应该是 SSL-aware 但没有配置证书 [提示:SSLCertificateFile]”错误

最近将 Apache2 升级到 2.2.31 版后,我发现 SSL VirtualHost 设置中有一个奇怪的行为。

即使客户端Server Name Identification知道,我托管的一些网站也会显示默认主机的证书,而这仅发生在其中一些网站上。这显示为常见的 Firefox/Chrome 的护照警告,如果您正在浏览您的家庭银行,您可能会被骗,但事实并非如此。

需要明确的是,如果服务器host.hostingdomain.org有自己的 SSL,则尝试访问 的https://www.hostedsite.org报告证书host.hostingdomain.org,但少数https://www.hostedsite.me报告了正确的证书。

所有站点都托管在相同的 IP 地址上,在端口 443 上。事实上,VirtualHosting 在 HTTP 端工作并自动将支持 SNI 的客户端重定向到 SSL,因此它向后兼容不支持 SNI 的客户端。

检查违规 VirtualHosts 的错误日志显示以下文本

[Tue Dec 25 16:02:45 2012] [error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/path/to/www.site.org.conf:20)
Run Code Online (Sandbox Code Playgroud)

事实上,虚拟主机已正确配置了 SSLCertificateFile。

问题很明显:如何解决这个问题?

ssl virtualhost sni apache-2.2

21
推荐指数
2
解决办法
4万
查看次数

关闭一台虚拟主机的错误和访问日志

如果我不在虚拟主机内设置错误日志,它将默认为默认错误/访问日志。有没有办法为一个虚拟主机关闭它?

linux virtualhost apache-2.2

19
推荐指数
1
解决办法
2万
查看次数

nginx。如何拒绝对未列出的 ssl 虚拟服务器的请求?

我在同一个 IP 上有一个通配符 SSL 证书和几个子域。现在我希望我的 nginx 只处理提到的服务器名称并为其他人断开连接,这样它看起来 nginx就不会为未列出的服务器名称运行(不响应,拒绝,死,没有响应的单个字节)。我做以下

ssl_certificate         tls/domain.crt;
ssl_certificate_key     tls/domain.key;

server {
  listen 1.2.3.4:443 ssl;
  server_name validname.domain.com;
  //
}

server {
  listen 1.2.3.4:443 ssl;
  server_name _;
  // deny all;
  // return 444;
  // return 404;
  //location {
  //  deny all;
  //}
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了最后一个服务器块中的几乎所有内容,但没有成功。我收到来自已知虚拟服务器的有效响应或错误代码。请帮忙。

ssl nginx virtualhost ssl-certificate

18
推荐指数
4
解决办法
1万
查看次数

子域的 Nginx 冲突服务器名称

我目前有一个在 Nginx 上为 foo.domain.com 运行的虚拟主机,一切正常。

我为要添加的新子域创建了一个新文件,名为 bar.domain.com。我对两者使用相同的设置。

当我重新启动 Nginx 时,我得到

Restarting nginx: nginx: [warn] conflicting server name "" on 0.0.0.0:443, ignored nginx.
Run Code Online (Sandbox Code Playgroud)

当我访问 bar.domain.com 时,我看到了我应该看到的内容,但是当我访问 foo.domain.com 时,我看到了 bar.domain.com 链接到的页面。

upstream php-handler {
    server unix:/var/run/php5-fpm.sock;
}

server {
        listen 80;
        server_name foo.domain.com;
        return 301 https://$server_name$request_uri;
}

server {
        listen 443;

        ssl on;
        ssl_certificate      [path_foo]/cacert.pem;
        ssl_certificate_key  [path_foo]/privkey.pem;

        root [path]/foo;

        ...
}
Run Code Online (Sandbox Code Playgroud)

酒吧

server {
        listen 80;
        server_name bar.domain.com;
        return 301 https://$server_name$request_uri;
}

server {
        listen 443;

        ssl on;
        ssl_certificate      [path_bar]/cacert.pem;
        ssl_certificate_key …
Run Code Online (Sandbox Code Playgroud)

ssl nginx virtualhost

18
推荐指数
1
解决办法
6万
查看次数

在 Apache 和 CentOS 下使用虚拟主机配置 SSL

我有两个由 CentOS 实例提供服务的网站。其中一个启用了 SSL,另一个仅在端口 80 上提供服务。

所以,http://siteone.comhttps://siteone.com两个做工精细,一样http://sitetwo.com

问题是https://sitetwo.com显示https://siteone.com.

我有一个可用的公共 IP 地址。

我认为我无法从一个 IP 为两个 https 站点提供服务,但是否至少有一种方法可以将 https 重定向到端口 80,https://sitetwo.com而不是为错误的站点提供服务?

sudo apachectl -S
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using xxx.xxx.xxx.xxx. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:

?
xxx.xxx.xxx.xxx:443     siteone.com (/etc/httpd/sites-enabled/ssl-siteone.conf:1)
*:80                   is a NameVirtualHost
         default server beta-siteone (/etc/httpd/sites-enabled/beta-siteone.conf:1)
         port 80 namevhost beta-ilegis (/etc/httpd/sites-enabled/beta-siteone.conf:1)
                 alias beta.siteone.com
         port 80 …
Run Code Online (Sandbox Code Playgroud)

https centos virtualhost

18
推荐指数
1
解决办法
12万
查看次数