我应该如何在 Apache 中使用单个配置文件配置多个虚拟主机?

性别蜜蜂

系统

Linux hosek 4.15.0-48-generic #51-Ubuntu SMP Wed Apr 3 08:28:49 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

问题

我应该如何使用 ssl 和重定向在 Apache 中使用单个配置文件配置多个虚拟主机?

在我下面的配置中需要什么和不需要什么?例如可以设置Include /etc/letsencrypt/options-ssl-apache.conf SSLCertificateFile /etc/letsencrypt/live/hosek/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/hosek/privkey.pem为仅文件开头吗?对于所有vhosts?

是否可以对一个文件进行整个配置,尤其是一个VirtualHost我现在有 2 个文件,一个用于80,第二个用于443.

vhost例子

no-ssl.conf文件。

<VirtualHost *:80>
ServerName www.thehatmakers.cz
ServerAlias thehatmakers.cz
RewriteCond %{HTTP_HOST} ^(thehatmakers.cz) [NC]
RewriteRule ^(.*)$ http://www.thehatmakers.cz$1 [R=301,L]
RewriteCond %{SERVER_NAME} =www.thehatmakers.cz
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<VirtualHost *:80>
ServerName www.obrazduse.cz
ServerAlias obrazduse.cz
RewriteCond %{HTTP_HOST} ^(obrazduse.cz) [NC]
RewriteRule ^(.*)$ http://www.obrazduse.cz$1 [R=301,L]
RewriteCond %{SERVER_NAME} =www.obrazduse.cz
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

ssl.conf 文件。

<VirtualHost *:443>
ServerName www.thehatmakers.cz
ServerAlias thehatmakers.cz
RewriteCond %{HTTP_HOST} ^(thehatmakers.cz) [NC]
RewriteRule ^(.*)$ http://www.thehatmakers.cz$1 [R=301,L]
DocumentRoot /var/www/html/thehatmakers
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/hosek/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/hosek/privkey.pem
</VirtualHost>

<VirtualHost *:443>
ServerName www.obrazduse.cz
ServerAlias obrazduse.cz
RewriteCond %{HTTP_HOST} ^(obrazduse.cz) [NC]
RewriteRule ^(.*)$ http://www.obrazduse.cz$1 [R=301,L]
DocumentRoot /var/www/html/obrazduse
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/hosek/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/hosek/privkey.pem
</VirtualHost>

谢谢。

更新

如果不可能用 1 个 VirtualHost,那么这个配置呢?有没有更短的方法来做到这一点?可以Redirect用于ssl吗?正如我评论的*:443配置?我可以使用Include /etc/letsencrypt/options-ssl-apache.conf SSLCertificateFile /etc/letsencrypt/live/hosek/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/hosek/privkey.pem 外部VirtualHost配置吗?那么谷歌呢,这个重定向可以吗?我正在为所有域使用 1 个证书,可以吗?

<VirtualHost *:80>
ServerName www.thehatmakers.cz
ServerAlias thehatmakers.cz
Redirect / https://www.thehatmakers.cz
</VirtualHost>

<VirtualHost *:443>
ServerName www.thehatmakers.cz
ServerAlias thehatmakers.cz
#Redirect / https://www.thehatmakers.cz
RewriteCond %{HTTP_HOST} ^(thehatmakers.cz) [NC]
RewriteRule ^(.*)$ https://www.thehatmakers.cz$1 [R=301,L]
DocumentRoot /var/www/html/thehatmakers
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/hosek/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/hosek/privkey.pem
</VirtualHost>

谢谢。

pa4080

除了这里建议的重复之外,很少有针对此问题的答案:

如何ServerAlias在使用中设置 HTTPS 虚拟主机

如果您ServerAlias在 HTTPS/SSL 虚拟主机中使用指令,则需要为所有域名颁发证书。通过使用,letsencrypt您需要添加几个-d选项:

sudo letsencrypt --apache .... -d www.example.com -d example.com

所有证书都将放在同一个证书文件中。

是否可以对一个文件进行整个配置,尤其是一个 VirtualHost?我现在有 2 个文件,一个是 80,第二个是 443。

您可以将所有 VirtualHost 的定义放在一个文件中,因此可以轻松地同时启用和禁用所有这些。但是没有办法配置一个 VirtualHost 来监听两个端口。

怎么样Redirect,而不是Rewrite在SSL配置?

根据 Apache2 对这种情况的文档,最好使用Redirect指令而不是Rewrite规则。请注意,如果要重定向https://example.comhttps://www.example.com. 所有相关的 VirtualHosts 可以使用相同的证书文件,以上述方式生成。

每个虚拟主机将负责不同的ServerName,例如:ServerName example.com用于第一个,分别ServerName www.example.com用于第二个等。注意ServerAlias必须删除指令。

如果一切都按预期进行,您可以继续使用Rewrite规则 - 这取决于您的决定。如果您正在使用Redirect指令,请不要错过目标域名末尾的斜线这是使用Redirect指令的HTTPS VirtualHost 的示例

<VirtualHost *:443>
    ServerName thehatmakers.cz
    Redirect permanent "/" "https://www.thehatmakers.cz/"

    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/hosek/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/hosek/privkey.pem
</VirtualHost>
  • 对于这个 VH,您根本不需要任何其他东西。
  • 该关键字permanent将指示客户端浏览器下次自动执行此重定向:

    • Redirect == HTTP 300
    • Redirect permanent == HTTP 301

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Apache中使用单个配置文件配置多个虚拟主机?

来自分类Dev

如何在Apache虚拟主机上使用别名配置多个SSL证书?

来自分类Dev

如何在本地计算机中为多个虚拟主机配置linux / apache

来自分类Dev

使用虚拟主机时如何配置apache / php / postfix网站电子邮件?

来自分类Dev

如何在Linux的Apache 2.4上配置基于名称的虚拟主机?

来自分类Dev

在OSX中配置我的Apache虚拟主机的正确位置在哪里?

来自分类Dev

在额外的文件中配置Apache虚拟主机

来自分类Dev

当未配置虚拟主机时,Apache Web服务器如何“确定”要提供的内容?

来自分类Dev

如何配置Apache虚拟主机以在80以外的端口上运行

来自分类Dev

Windows 10 Apache虚拟主机配置

来自分类Dev

Apache虚拟主机配置错误

来自分类Dev

Windows 10 Apache虚拟主机配置

来自分类Dev

我应该如何在apache2 HTTP服务器上放置文件

来自分类Dev

如何使用Apache Commons解析xml中的配置文件?

来自分类Dev

Apache配置文件:如何编辑

来自分类Dev

Apache配置文件:如何编辑

来自分类Dev

如何限制apache虚拟主机?

来自分类Dev

如何在 openshift 上修改 apache httpd 配置文件

来自分类Dev

apache虚拟主机配置CentOS7

来自分类Dev

使用fastcgi在Apache上配置两个虚拟主机

来自分类Dev

如何为多个虚拟主机设置负载均衡器(Apache)

来自分类Dev

我可以同时关闭Apache虚拟主机conf文件中的PHP和HTML缓存吗?

来自分类Dev

Apache上的多个SSL虚拟主机

来自分类Dev

我可以使用apache虚拟主机添加很多前缀吗?

来自分类Dev

如何获取apache2的默认配置文件?

来自分类Dev

如何获取apache2的默认配置文件?

来自分类Dev

apache虚拟主机:如何添加2个虚拟主机?

来自分类Dev

如何为Apache中的虚拟主机编写重写规则?

来自分类Dev

Apache如何解决请求的虚拟主机?

Related 相关文章

  1. 1

    如何在Apache中使用单个配置文件配置多个虚拟主机?

  2. 2

    如何在Apache虚拟主机上使用别名配置多个SSL证书?

  3. 3

    如何在本地计算机中为多个虚拟主机配置linux / apache

  4. 4

    使用虚拟主机时如何配置apache / php / postfix网站电子邮件?

  5. 5

    如何在Linux的Apache 2.4上配置基于名称的虚拟主机?

  6. 6

    在OSX中配置我的Apache虚拟主机的正确位置在哪里?

  7. 7

    在额外的文件中配置Apache虚拟主机

  8. 8

    当未配置虚拟主机时,Apache Web服务器如何“确定”要提供的内容?

  9. 9

    如何配置Apache虚拟主机以在80以外的端口上运行

  10. 10

    Windows 10 Apache虚拟主机配置

  11. 11

    Apache虚拟主机配置错误

  12. 12

    Windows 10 Apache虚拟主机配置

  13. 13

    我应该如何在apache2 HTTP服务器上放置文件

  14. 14

    如何使用Apache Commons解析xml中的配置文件?

  15. 15

    Apache配置文件:如何编辑

  16. 16

    Apache配置文件:如何编辑

  17. 17

    如何限制apache虚拟主机?

  18. 18

    如何在 openshift 上修改 apache httpd 配置文件

  19. 19

    apache虚拟主机配置CentOS7

  20. 20

    使用fastcgi在Apache上配置两个虚拟主机

  21. 21

    如何为多个虚拟主机设置负载均衡器(Apache)

  22. 22

    我可以同时关闭Apache虚拟主机conf文件中的PHP和HTML缓存吗?

  23. 23

    Apache上的多个SSL虚拟主机

  24. 24

    我可以使用apache虚拟主机添加很多前缀吗?

  25. 25

    如何获取apache2的默认配置文件?

  26. 26

    如何获取apache2的默认配置文件?

  27. 27

    apache虚拟主机:如何添加2个虚拟主机?

  28. 28

    如何为Apache中的虚拟主机编写重写规则?

  29. 29

    Apache如何解决请求的虚拟主机?

热门标签

归档