我正在尝试将apache服务器作为我的节点服务器的网关 我的apache将服务于静态页面,节点将充当rest api服务器 节点和apache都位于同一台服务器上,ubuntu 64bit ec2。
我已经尝试为https执行此操作并失败,后来我尝试打开代理传递的http端口并且它有效(我已将节点更改为http以使其工作)
我的最后一招将是将节点转换为Web服务器,但我希望保持简单,因为它很快就会重构并使用流星。
我会感激任何建议
这是我对apache的配置
<VirtualHost *:443>
ServerName secure.mysite.co.il
ServerAdmin admin@mysite.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /ssl/mysite.crt
SSLCertificateKeyFile /ssl/mysite.key
SSLCertificateChainFile /ssl/ca-bundle-client.crt
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /echo/test https://127.0.0.1:8001/echo/test
ProxyPassReverse /echo/test https://127.0.0.1:8001/echo/test
成功的http配置
<VirtualHost *:80>
ServerAdmin admin@mysite.com
ServerName mysite.co.il
ServerAlias www.mysite.co.il
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://127.0.0.1:8001/
ProxyPassReverse / http://127.0.0.1:8001/
</VirtualHost>
答案 0 :(得分:6)
需要声明SSLProxyEngine On以启用反向代理配置的SSL。该指令在此处记录:
http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslproxyengine
答案 1 :(得分:1)
以下配置适合我。我使用了端口4433但是这显然是任意的
<VirtualHost _default_:443>
SSLProxyEngine on
ServerName example.com
ServerAlias www.example.com
ProxyRequests Off
ProxyPreserveHost On
ProxyVia Full
<Proxy *>
Require all granted
</Proxy>
ServerAdmin info@example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
#SSLCertificateChainFile /etc/letsencrypt/live/fullchain1.pem
ProxyPass / https://example.com:4433/
ProxyPassReverse / https://example.com:4433 /
<Directory "/var/www/example.com/public_html">
AllowOverride All
</Directory>
</VirtualHost>