通过ubuntu 16.04上的webmin在Apache 2.4上配置虚拟主机

问题描述 投票:0回答:1

我在尝试配置apache服务器以托管多个域时遇到了一些麻烦。在这一刻,我只有一个,但是我想让它准备容纳更多。我不知道如何使服务器在启用SSL的情况下侦听端口80和443。我在虚拟主机的.conf文件中有此配置:

<IfModule mod_ssl.c>
<VirtualHost *:80>
DocumentRoot /var/www/mygamingmoments
ServerName mygamingmoments.es
<Directory "/var/www/html/mygamingmoments">
allow from all
Options Indexes FollowSymLinks
Require all granted
AllowOverride All
RewriteEngine On
RewriteOptions Inherit
</Directory>
SSLCertificateFile /etc/letsencrypt/live/mygamingmoments.es/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mygamingmoments.es/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

事实是,现在我可以使用https进入我的站点,但是如果我没有写这个,则虚拟主机似乎无法正常工作。

问候。

apache virtual host webmin
1个回答
0
投票

建立Apache的方法很多,所以我将展示您可能想要做的事情。

如果您要重定向端口80的所有流量以443,为防止访问http或https,这取决于您将域名放在哪个端口后,您可以执行类似的操作或适应您的实际意图。

因此在端口80的虚拟主机中,您需要这样的内容:

<VirtualHost *:80>

ServerName your-domain.something
ServerAlias www.your-domain.somenthing
DocumentRoot /path/to/source

    <Directory /path/to/source>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>

RewriteEngine on
RewriteCond %{SERVER_NAME} =your-domain.something [OR]
RewriteCond %{SERVER_NAME} =www.your-domain.somenthing
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

这里每个对您的站点或应用程序的请求,无论使用www还是不使用www,都将重定向到另一个具有https协议的虚拟主机,因此您需要创建它。

端口443的虚拟主机。

<VirtualHost *:443>

ServerName your-domain.something
ServerAlias www.your-domain.somenthing
DocumentRoot /path/to/source

    <Directory /path/to/source>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>

Include /path/to/options-ssl-apache.conf
SSLCertificateFile /path/to/fullchain.pem
SSLCertificateKeyFile /path/to/privkey.pem

</VirtualHost>

您可以在同一文件或另一个文件中进行此操作,以提高组织性(例如,my-site.conf),但是如果选择在另一个文件中进行此操作,则必须将此“站点”添加到启用了apache环境且具有< [a2ensite:

# a2ensite path-to-your-config-file # systemctl reload apache2
使用此示例,您应该知道,如果您要在环境中拥有

各种站点,您将需要每个站点都拥有自己的虚拟主机。在这种方法中,一个用于端口80的虚拟主机和一个对应于端口433的虚拟主机。其关键是使请求与每个虚拟主机上的ServerName或ServerAlias选项匹配。

我希望能有所帮助。
© www.soinside.com 2019 - 2024. All rights reserved.