gpt4 book ai didi

ruby - 这是 Sinatra 配置问题还是 Apache 配置问题?

转载 作者:太空宇宙 更新时间:2023-11-03 16:58:04 24 4
gpt4 key购买 nike

我还不确定这是 Apache 问题还是 Sinatra 问题,基本上,我们有一堆小应用程序在单个服务器上运行,我们只使用内置的 webrick 实例部署它们并使用 apache 重新- 通过子域将这些请求路由到正确的端口。我正在使用 gollum,这是一个带有 git 持久层的 sinatra 应用程序,但是当它重定向时(在编辑操作之后)我得到了一个意外的应用程序路由。我不确定是否可以通过将启动选项传递给 Sinatra 或通过在应用程序的虚拟主机声明中配置重写规则来解决此问题。请在您的回答中包括您认为最好的选项以及如何实现的示例。谢谢,

# apache virtualhost declaration
<VirtualHost *:80>
ServerName wiki.domain.com
DocumentRoot "/var/www/html"

ProxyPass / http://localhost:3006
ProxyPassReverse / http://localhost:3006
</VirtualHost>

用 sinatra 解决 GET 问题,例如

wiki.domain.com/Home

但在 sinatra 重定向上失败

# expected
wiki.domain.com/Home

# actual
wiki.domain.com:3006/Home

这是 Sinatra 操作(来源:https://github.com/github/gollum/blob/master/lib/gollum/frontend/app.rb)

post '/edit/*' do
name = params[:splat].first
wiki = Gollum::Wiki.new(settings.gollum_path)
page = wiki.page(name)
format = params[:format].intern
name = params[:rename] if params[:rename]

wiki.update_page(page, name, format, params[:content], commit_message)

redirect "/#{CGI.escape(Gollum::Page.cname(name))}"
end

最佳答案

希望不大,但也许 ProxyPass 指令中的 URL 需要尾随 /?文档中就是这样,我在没有它们的情况下在 error.log 中得到了一些奇怪的条目。

关于ruby - 这是 Sinatra 配置问题还是 Apache 配置问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4440210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com