端口重定向不适用于 https apache2

端口重定向不适用于 https apache2

我正在尝试在 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

仍在等待更好的答案,谢谢。

相关内容