百度搜索一大堆,结果都是复制转载,其中一些还都是过时或者错的

服务器B反向代理到服务器A

添加或者修改以下配置到/etc/apache2/sites-available/default-ssl.conf
服务器A:域名cdn.server.com解析服务器A IP地址
开启mod:a2enmod http2 headers
重启服务service apache2 restart

    <VirtualHost *:443>
        ServerAdmin webmaster@localhost
        ServerName cdn.server.com
        DocumentRoot /var/www/

        #允许服务器B跨域请求
        Header add Access-Control-Allow-Origin https://server.com

        #证书域名是:cdn.server.com
        SSLEngine on
        SSLCertificateFile  /etc/apache2/ssl/cdn.server.com.crt
        SSLCertificateKeyFile /etc/apache2/ssl/cdn.server.com.key
        SSLCertificateChainFile /etc/apache2/ssl/cdn.server.com.root.crt
    </VirtualHost>

重启服务service apache2 restart

服务器B:域名server.com 解析服务器A IP地址
开启mod:a2enmod proxy proxy_http proxy_http2 headers
重启服务service apache2 restart

    <VirtualHost *:443>
        ServerAdmin webmaster@localhost
        ServerName server.com
        DocumentRoot /var/www/

        SSLProxyEngine On
        ProxyRequests Off

        #请求到服务器B路径/反向代理到https://cdn.server.com/
        ProxyPass / https://cdn.server.com/
        ProxyPassReverse / https://cdn.server.com/
        ProxyPreserveHost on      #以server.com而非cdn.server.com请求服务器A

        <Proxy *>
          Order deny,allow
          Allow from all
        </Proxy>
        #证书域名是:www.server.com
        SSLEngine On
        SSLCertificateFile  /etc/apache2/ssl/www.server.com.crt
        SSLCertificateKeyFile /etc/apache2/ssl/www.server.com.key
        SSLCertificateChainFile /etc/apache2/ssl/www.server.com.root.crt
</VirtualHost>

重启服务service apache2 restart

最后修改:2022 年 06 月 27 日 08 : 06 AM
如果觉得我的文章对你有用,无需赞赏用心感谢!