Apache有多个站点,一个站点有效,其他站点无效

Mic*_*ias 7 apache apache2

我已经尝试了所有类似问题的方法,但是没有运气。

我收到“您无权访问此服务器上的X”。应所有要求。

我在同一IP上有两个站点,apache配置文件是相同的,文件许可权是相同的,但是,一个可行而另一个不可行。

配置文件:

<VirtualHost x.x.xxx.xx:80>
    ServerName site2.example.com
    ServerAlias site2.example.com
    Redirect / https://site2.example.com/

    <IfModule mod_security2.c>
            SecRuleEngine Off
        </IfModule>
</VirtualHost>

<VirtualHost x.x.xxx.xx:443>
    Protocols h2 http/1.1
    ServerName site2.example.com
    ServerAlias site2.example.com
    ServerAdmin it@example.com

    SetEnv ENVIRONMENT production

    DocumentRoot /data/www/site2.example.com
    <Directory /data/www/site2.example.com>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
        Require all granted
    </Directory>

    <IfModule mod_security2.c>
        SecRuleEngine Off
    </IfModule>

    ErrorLog /var/log/apache2/site2_error.log
    LogLevel warn

    KeepAlive On

    SSLEngine On
    SSLCertificateFile /etc/letsencrypt/live/site2.example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/site2.example.com/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf

    Header add Strict-Transport-Security "max-age=15768000"

    # Add File Caching
    <filesMatch ".(js|css|png|jpeg|jpg|gif|ico|pdf)$">
        Header set Cache-Control "max-age=31536000, public"
    </filesMatch>

    # Disable slower encryption on older versions of IE
    SetEnvIf User-Agent ".*MSIE [1-5].*" \
          nokeepalive ssl-unclean-shutdown \
          downgrade-1.0 force-response-1.0

    SetEnvIf User-Agent ".*MSIE [6-9].*" \
          ssl-unclean-shutdown
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我可能会缺少什么?

使用的权限命令:

  • sudo chown -R www-data:www-data /data/www/site2.example.com
  • sudo find /data/www/site2.example.com -type f -exec chmod 644 {} \;
  • sudo find /data/www/site2.example.com -type d -exec chmod 775 {} \;

我已经重新启动了Apache。

Mic*_*ias 3

所以问题是对于 SSL,上面的配置文件没有被使用。我通过列出返回的已启用站点发现了问题sudo apache2ctl -S

port 443 namevhost site2.example.com (/etc/apache2/sites-enabled/site2-le-ssl.conf:2)
Run Code Online (Sandbox Code Playgroud)

这是设置 LetsEncrypt 时创建的文件。我通过禁用配置文件sudo a2dissite site2-le-ssl.conf.