标签: virtualhost

同一 IP 地址和同一端口上的多个 SSL 域?

这是一个关于在同一 IP 上托管多个 SSL 网站的规范问题

我的印象是每个 SSL 证书都需要它自己唯一的 IP 地址/端口组合。但是我之前发布的一个问题答案与这个说法不一致。

使用来自该问题的信息,我能够获得多个 SSL 证书以在相同的 IP 地址和端口 443 上工作。鉴于上述假设,我很困惑为什么这有效,并得到其他人的强化,即每个 SSL 域网站上的同一台服务器需要自己的 IP/端口。

我怀疑我做错了什么。可以这样使用多个 SSL 证书吗?

ssl virtualhost sni apache-2.2

110
推荐指数
5
解决办法
8万
查看次数

什么是 .crt 和 .key 文件以及如何生成它们?

我有以下配置:

SSLEngine on
SSLCertificateFile /etc/httpd/conf/login.domain.com.crt
SSLCertificateKeyFile /etc/httpd/conf/login.domain.com.key
SSLCipherSuite ALL:-ADH:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP
Run Code Online (Sandbox Code Playgroud)

但我不知道如何生成.crt.key文件。

ssl java virtualhost ssl-certificate

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

Apache 默认/全能虚拟主机?

如果我有 3 个域,domain1.com、domain2.com 和 domain3.com,是否可以为未列出的域设置默认虚拟主机?例如,如果我有:

<VirtualHost 192.168.1.2 204.255.176.199>
DocumentRoot /www/docs/domain1
ServerName domain1
ServerAlias host
</VirtualHost>

<VirtualHost 192.168.1.2 204.255.176.199>
DocumentRoot /www/docs/domain2
ServerName domain2
ServerAlias host
</VirtualHost>

<VirtualHost 192.168.1.2 204.255.176.199>
DocumentRoot /www/docs/everythingelse
ServerName *
ServerAlias host
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

如果您注册一个域并将其指向我的服务器,它将默认显示与域 3 相同的所有其他内容。那可能吗?

virtualhost apache-2.2

68
推荐指数
3
解决办法
11万
查看次数

在 Apache VirtualHost 中重定向 URL?

我有一个带有 Apache 的专用服务器,我在上面设置了一些 VirtualHosts。我已经设置了一个来处理 www 域以及非 www 域。

我的 www 的 VH .conf 文件:

<VirtualHost *>
  DocumentRoot /var/www/site
  ServerName www.example.com
  <Directory "/var/www/site">
    allow from all
  </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

有了这个.htaccess

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以将 www 重定向到非 www 版本?目前我将两个版本发送到同一个DocumentRoot并使用,.htaccess但我确定我必须能够在 VirtualHost 文件中做到这一点。

mod-rewrite redirect virtualhost apache-2.2

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

Apache“客户端被服务器配置拒绝”,尽管允许访问目录(虚拟主机配置)

在 Ubuntu 上的 Apache 中,我设置了一个虚拟主机,但在浏览器中我不断收到“403 禁止访问”错误;日志显示“客户端被服务器配置拒绝:/home/remix/ ”。

在网上寻找解决方案时,我发现了很多关于目录访问的帖子(全部允许等),但据我所知,我已经这样做了。在httpd-vhosts.conf 中有以下代码:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/opt/lampp/htdocs/"
    ServerName localhost
    ServerAlias localhost
    ErrorLog "logs/dummy-host.example.com-error_log"
    CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "/home/remix/"
    ServerName testproject
    ServerAlias testproject
    <Directory "/home/remix/">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我也添加了

127.0.0.1    testproject
Run Code Online (Sandbox Code Playgroud)

到 /etc/hosts 文件。

此外,/home/remix/ 文件夹包含一个 index.html 文件,并且在 httpd.conf 中启用了 vhost。

有什么我没有看到的吗?

编辑:这是 Apache error_log 条目:

[Sat Aug 18 09:15:32.666938 2012] …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu virtualhost apache-2.2

46
推荐指数
1
解决办法
14万
查看次数

IPv6 上基于 nginx 名称的虚拟主机

我有一个 nginx 服务器,为近六个不同的网站提供服务。它运行在刚刚获得 IPv6 本机支持(达拉斯数据中心)的 Linode 上,我正在尝试将我的大部分站点配置为双栈操作。我使用 IPv6-only 子域启动并运行了第一个,如下所示:

server {
    listen [::]:80 ipv6only=on;
    listen 80;

    server_name example.com ipv6.example.com;

    root /var/www/example.com/htdocs;

    #More stuff, including PHP, WordPress
}
Run Code Online (Sandbox Code Playgroud)

这很有效——example.com 仅支持 IPv4(目前),而 ipv6.example.com 仅支持 IPv6(主要用于测试目的)。我可以ping6 ipv6.example.com,甚至wget ipv6.example.com没有流汗 - 这一切都令人愉快地无痛(在通过 nginx 绑定虚拟主机的方式找到“问题”之后,需要ipv6only=on参数和双重listen指令)。

但是,我现在正在尝试扩展它以支持我的其他域,从 static.example.com 开始;但是,当我采用与上述相同的方法时(双重listen指令,包括ipv6only=on参数),在重新启动 nginx 时出现以下错误:

* Starting Nginx Server...
nginx: [emerg] a duplicate listen options for [::]:80 in /etc/nginx/sites-enabled/example.com.conf:3
Run Code Online (Sandbox Code Playgroud)

似乎 nginx 绑定 IPv6 的方法不允许基于名称的虚拟主机?我是否必须从我的主机获取额外的 IPv6 地址(不是问题)并在 IPv6 上使用基于 IP …

nginx ipv6 virtualhost

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

_default_:* 和 *:* 在 VirtualHost 上下文中的区别

我想知道VirtualHost Context 中default :*”“*:*”之间的区别。

<VirtualHost _default_:*>
  #...
  ServerName host.example.com
  #...
</VirtualHost>

<VirtualHost *:*>
  #...
  ServerName host.example.com
  #...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我不知道区别和用途。

thk

tomcat httpd httpd.conf virtualhost apache-2.2

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

我如何知道 Apache 正在使用哪个配置文件?

我正在尝试在 Mac OS X 上设置虚拟主机。我一直在修改 httpd.conf 并重新启动服务器,但没有让它正常工作。此外,我注意到它不在 httpd.conf (Libraries/WebServer/Documents) 中提到的 DocumentRoot 中提供文件,而是在不同的目录 (/usr/local/apache2/htdocs) 中提供文件。我在 httpd.conf 中的任何地方都没有看到这个文件夹。此外,PHP 可以工作,但“LoadModule php5_module”行被注释掉了。这让我觉得它在使用另一个 .conf 文件。如何确定实际加载了哪个配置?

更新:我刚刚删除了 httpd.conf 和 apache 在重启后的行为相同,所以它肯定没有使用它!

mac-osx httpd.conf virtualhost apache-2.2

44
推荐指数
3
解决办法
8万
查看次数

在同一个 VirtualHost 上提供 http(端口 80)和 https(端口 443)

我需要在 Apache 上设置我的 VirtualHost 以在 http 和 https 上提供服务(使用标准端口)

如果我启用 SSL 引擎(如下所示) - 在端口 80 上出现错误。

原因是,站点的某些部分需要 SSL,但其他部分不需要。我怎样才能在网站上同时提供 http + https 服务?

这是我的虚拟主机文件....

NameVirtualHost *

<VirtualHost *>
        ServerAdmin webmaster@localhost
        ServerName mysite.co.uk
        DocumentRoot /var/www/mysite/public
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/mysite/public>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, …
Run Code Online (Sandbox Code Playgroud)

ssl http https virtualhost apache-2.2

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

为同一个 VirtualHosts 声明多个端口

为同一个 VirtualHosts 声明多个端口:

SSLStrictSNIVHostCheck off
# Apache setup which will listen for and accept SSL connections on port 443.
Listen 443
# Listen for virtual host requests on all IP addresses
NameVirtualHost *:443

<VirtualHost *:443>
  ServerName domain.localhost
  DocumentRoot "/Users/<my_user_name>/Sites/domain/public"
  <Directory "/Users/<my_user_name>/Sites/domain/public">
    Order allow,deny
    Allow from all
  </Directory>

  # SSL Configuration
  SSLEngine on
  ...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

如何为“domain.localhost”声明一个新端口(“listen”、ServerName、...)?

如果我添加以下代码,apache 也适用于(太多)'domain.localhost' 的所有其他子域(subdomain1.domain.localhost、subdomain2.domain.localhost,...):

<VirtualHost *:80>
  ServerName pjtmain.localhost:80
  DocumentRoot "/Users/Toto85/Sites/pjtmain/public"
  RackEnv development
  <Directory "/Users/Toto85/Sites/pjtmain/public">
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

configuration port virtualhost apache-2.2

39
推荐指数
1
解决办法
8万
查看次数