Reverse-Proxy
Apache 代理通行證不適用於 HTTPS
我想將某個子路徑重定向到在埠 19011 上執行的後端應用程序。我的配置文件 (
/etc/apache2/sites-available/my_domain.conf
) 如下所示:<VirtualHost *:80> ServerName my_domain DocumentRoot /var/www/my_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ProxyPass /my_subpath/ http://localhost:19011/ ProxyPassReverse /my_subpath/ http://localhost:19011/ </VirtualHost> <VirtualHost *:443> SSLEngine On SSLProxyEngine On SSLCertificateFile /etc/letsencrypt/live/my_domain/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/my_domain/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf ServerName my_domain DocumentRoot /var/www/my_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ProxyPass /my_subpath/ http://localhost:19011/ ProxyPassReverse /my_subpath/ http://localhost:19011/ </VirtualHost>
此配置適用於 HTTP,但不適用於 HTTPS:
http://my_domain/my_subpath
按預期進入後端應用程序,而https://my_domain/my_subpath
返回 404我是一個 apache noob,所以我不知道為什麼這不起作用。我也沒有在 apache 日誌中看到任何錯誤。我在 conf 文件中缺少什麼?
版本:
- 阿帕奇:2.4.29
- 作業系統:Ubuntu 18.04.5
事實證明我的 conf 文件沒有問題。還有一個名為
my_domain-le-ssl.conf
under的 conf 文件/etc/apache2/sites-available
,它是在我使用 Letsencrypt 創建 SSL 證書後自動創建的。該 conf 文件還包含埠 443 的虛擬主機,而 Apache 正在使用該虛擬主機來服務 SSL 請求。如有疑問,請執行
sudo apachectl -S
以查看您的活動虛擬主機配置。就我而言,它返回如下內容:*:80 my_domain (/etc/apache2/sites-enabled/my_domain.conf:1) *:443 my_domain (/etc/apache2/sites-enabled/my_domain-le-ssl.conf:2) *:443 my_domain (/etc/apache2/sites-enabled/my_domain.conf:10)