Apache vhost 配置端口转发

Apache vhost 配置端口转发

我正在尝试掌握 Apache 中的反向代理功能。我在 Windows Server 2012 上使用 Bitnami RubyStack。以下配置使 Apache 甚至无法启动 - error.log 似乎对出现的问题没有任何帮助。

<VirtualHost *:80>
  ServerName mydomain.nl
  ServerAlias mysub.mydomain.nl

  # this is a Rails application
  DocumentRoot "C:/Bitnami/rubystack-2.0.0-17/projects/dummy"

  RewriteEngine On

  <Proxy balancer://thinservers>
    BalancerMember http://127.0.0.1:3001
  </Proxy>

  # Redirect all non-static requests to thin
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
  RewriteRule ^/(.*)$ balancer://thinservers%{REQUEST_URI} [P,QSA,L]

  # Custom log file locations

  ErrorLog  "C:/Bitnami/rubystack-2.0.0-17/projects/dummy/log/error.log"
  CustomLog "C:/Bitnami/rubystack-2.0.0-17/projects/dummy/log/access.log"

</VirtualHost>

我想要实现的是将端口 80 上的传入请求转发到 3001。但是我认为可能存在问题,因为 Bitnami 文档根目录也已配置。

我对 Apache 不是很熟悉。我已经包含了我需要的代理功能的模块。只要我不包含 vhost,Apache 就可以正常启动。但是,我不知道 Rewriting 和 BalanceMember 应该做什么。

编辑:经过一些权限检查后,我启动了 Apache,但是在访问端口 80 时出现内部服务器错误。

对于 URL /,没有有效的协议处理程序。如果您使用的是 mod_proxy 的 DSO 版本,请确保使用 LoadModule 将代理子模块包含在配置中。

答案1

经过一番挖掘,我发现了一些类似的方法。我发现了一些晦涩难懂的教程,甚至 Apache 文档部分中的链接也很差。因此,对于每个真正不关心 Apache 细节,但只希望他们的 Rails 应用程序在 Bitnami Rubystack 上使用反向代理的人来说,这是一个不错的选择。

将 vhosts 包含在主配置文件 (httpd-conf) 中,在 extra/vhosts.conf 中添加自定义 vhost 条目

NameVirtualHost *:80

    <VirtualHost *:80>
        DocumentRoot "YOUR_BITNAMI_INSTALL_DIR/rubystack-2.0.0-17/projects/dummy/public"
        ServerName your-subdomain.domain.com

    ProxyPass / http://localhost:3001/
    ProxyPassReverse / http://localhost:3001/

    </VirtualHost>

完美完成这个技巧!

相关内容