使用 NodeJS 代理通行证的 Apache SSL 配置无法启动
Posted
技术标签:
【中文标题】使用 NodeJS 代理通行证的 Apache SSL 配置无法启动【英文标题】:Apache SSL Config With NodeJS Proxy Pass Fails to Start 【发布时间】:2018-04-19 00:38:54 【问题描述】:我正在尝试在 Ubuntu 16.04 上的 Apache 中对 PM2 中运行的 nodejs 服务进行代理传递。
我最初尝试将该服务用作在端口 80 上运行的普通 http 服务,并且效果很好。
然后我想将它部署到生产环境中,因此它显然需要有 SSL 证书。因此,我在第一个 VirtualHost 中添加了重定向到安全服务,并将 SSL 内容添加到原始配置中,以使其使用当前证书在端口 443 上运行。
目前我有一个通配符证书,可以与 domain.com 下的所有内容一起使用
<VirtualHost *:80>
ServerName my.domain.com
Redirect permanent / https://my.domain.com/servicename
</VirtualHost>
<VirtualHost *:443>
ServerName my.domain.com
DocumentRoot /var/www/servicename
SSLEngine on
SSLCertificateFile /etc/ssl/certs/my.crt
SSLCertificateKeyFile /etc/ssl/certs/my.key
# I don't actually have a ca certificate so I tried adding the my.crt again with no luck. I also don't have any .pem files either
#SSLCACertificateFile /etc/ssl/certs/my.crt
ProxyRequests Off
ProxyPreserveHost On
ProxyVia Full
<Proxy *>
Require all granted
</Proxy>
<Location /servicename>
ProxyPass http://127.0.0.1:8080
ProxyPassReverse http://127.0.0.1:8080
</Location>
</VirtualHost>
但是,当我保存此配置并执行 sudo systemctl restart apache2 时,它告诉我 apache 无法启动
Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.
然后我运行 systemctl status apache2.service 并得到以下信息:
apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
apache2-systemd.conf
Active: failed (Result: exit-code) since Mon 2017-11-06 12:41:54 CST; 40s ago
Docs: man:systemd-sysv-generator(8)
Process: 10361 ExecStop=/etc/init.d/apache2 stop (code=exited,status=0/SUCCESS)
Process: 9310 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS)
Process: 10476 ExecStart=/etc/init.d/apache2 start (code=exited, status=1/FAILURE)
我在配置中做错了什么?
【问题讨论】:
尝试apachectl configtest
- 应该会报告您的配置的特定错误。
【参考方案1】:
在@Kryten 的建议下使用apachectl configtest
,我发现我没有安装ssl,所以解决方案是sudo a2enmod ssl
和apache 启动!
【讨论】:
以上是关于使用 NodeJS 代理通行证的 Apache SSL 配置无法启动的主要内容,如果未能解决你的问题,请参考以下文章
Nodejs 无法在 ws:// apache 代理服务器上建立连接