我正在尝试在 aws lightsail 实例上配置 apache2。该实例是 aws wordpress + aws linux 的默认设置。我在这个实例的端口 5000 上运行了一个 node.js 服务器。
Apache 服务器位于/opt/bitnami/apache2
。
首先,我尝试将非 http 请求的端口重定向到 5000,效果很好。
这是.conf 文件:
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ServerName example.com
ServerAlias www.example.com
# setup the proxy
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://example:5000/
ProxyPassReverse / http://example:5000/
</VirtualHost>
然后我使用 bitnami bncert-tool 配置了 ssl 证书。我在配置 ssl 时启用了强制 https 重定向。
然后我配置example-https.conf
如下:
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ServerName example.com
ServerAlias www.example.com
SSLEngine on
SSLCertificateFile "/opt/bitnami/apache2/conf/example.com.crt"
SSLCertificateKeyFile "/opt/bitnami/apache2/conf/example.com.key"
# setup the proxy
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://example.com:5000/
ProxyPassReverse / http://example.com:5000/
</VirtualHost>
但这次它不起作用。请求被重定向到 https,并且响应来自 wordpress,而不是我的 node.js 服务器。
这些conf
文件已存在/var/www
,并且我已将它们包含在httpd.conf
使用中
Include "/var/www/*.conf"
答案1
Bitnami 工程师在这里,
您可以按照以下步骤在 Bitnami 解决方案上部署自定义 Node 应用程序:
运行以下命令来创建目录:
sudo mkdir -p /opt/bitnami/myapp sudo mkdir /opt/bitnami/myapp/conf sudo mkdir /opt/bitnami/myapp/htdocs
创建和编辑/opt/bitnami/myapp/conf/httpd-prefix.conf文件并添加以下行:
Include "/opt/bitnami/myapp/conf/httpd-app.conf"
创建和编辑/opt/bitnami/myapp/conf/httpd-app.conf文件并向其中添加以下内容。这是应用程序的主要配置文件,因此请根据应用程序的要求对其进行进一步修改。
ProxyPass / http://127.0.0.1:3000/ ProxyPassReverse / http://127.0.0.1:3000/
注意:3000 是 Express 服务器的默认端口。如果您已自定义应用程序以使用其他端口,请在此处进行更改。
创建上述文件和目录后,将以下行添加到主 Apache 配置文件的末尾/opt/bitnami/apache2/conf/bitnami/bitnami-apps-prefix.conf, 如下所示:
Include "<%= variable :app_directory, :platform %>/myapp/conf/httpd-prefix.conf"
重新启动 Apache 服务器:
sudo /opt/bitnami/ctlscript.sh restart apache
您现在可以使用 Bitnami HTTPS 配置工具生成 Let's Encrypt 证书并使用 http 和 https 访问您的应用程序。
答案2
通过在文件上替换<VirtualHost *:80>
来修复它<VirtualHost *:443>
example-https.conf
仍在等待更好的答案,谢谢。