11

Windowsにapache2.2があります。Subversion (/svn) と redmine (/redmine) の両方を提供しようとしています。この構成でsvnを正常に実行しています:

<Location /svn>
  DAV svn
  SVNParentPath C:/svn_repository
  ...
</Location>

これはうまく機能しています。私の svn ユーザーはhttp://mybox/svnを問題なくヒットできます。

ここで、Rails アプリ (RedMine) 用に別のディレクトリを追加します。

この質問のアドバイスに従って、mongrel サーバーをセットアップし、それに apache プロキシ クライアントを接続しました。ルートにすると問題なく動作しますが、サブディレクトリに作成するのに問題があります。

<Location /redmine>
  ProxyPass http://localhost:3000/
  ProxyPassReverse http://localhost:3000/
</Location>

助言がありますか?

4

4 に答える 4

15

これが私が変更しなければならなかったものです:

末尾のスラッシュを削除しました:

<Location /redmine>
  ProxyPass http://localhost:3000
  ProxyPassReverse http://localhost:3000/
</Location>

そして私のレールアプリでは:

# added to end of file C:\redmine\config\environment.rb
ActionController::AbstractRequest.relative_url_root = "/redmine"

今、それは働いています!


私はこのアプローチに完全に満足していませんでした.リダイレクトの問題に遭遇しました. これは、これまでのところうまく機能しているように見える別の試みです。

この 2 番目のアプローチの方が優れているようです。


アップデート:

コメントに記載されているように、Rails 2.3.2 以降で実行されている最近のアプリの場合は、代わりにこれを使用します。

config.action_controller.relative_url_root = '/redmine'

additional_environment.rb新しいファイルに入れました。

于 2009-01-22T21:51:23.323 に答える
1

リバース プロキシを使用して Mongrel + Apache を使用したい場合は、システム (Win2k3、Apache 2.2、Redmine のトランク) で同じ問題を解決した方法を次に示します。--prefix /redmine秘密は、サービスを提供するように指示する which を使用して、mongrel サービスをインストールすることです。http://localhost:port/redmine

Apache httpd.conf (または適切なインクルード ファイル) で:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

<IfModule mod_proxy.c>
ProxyRequests Off
#No need to forward on static content - let apache do it faster
ProxyPass /redmine/images ! 
ProxyPass /redmine/stylesheets ! 
ProxyPass /redmine/javascript ! 
# Remove the following entry on public sites as this is insecure
ProxyPass /redmine/plugin_assets !
ProxyPass /redmine/help ! 
ProxyPass /redmine http://localhost:4000/redmine
ProxyPassReverse /redmine http://localhost:4000/redmine
ProxyPreserveHost On
#continue with other static files that should be served by apache
Alias /redmine/images C:/Repositories/redmine/public/images/
Alias /redmine/stylesheets C:/Repositories/redmine/public/stylesheets/
Alias /redmine/javascript C:/Repositories/redmine/public/javascript/
# Remove the following on public sites as this is insecure
Alias /redmine/plugin_assets C:/Repositories/redmine/public/plugin_assets/
Alias /redmine/help C:/Repositories/redmine/public/help/
</IfModule>

# Make sure apache can see public and all subfolders - not suitable for public sites
<Directory "C:/Repositories/redmine/public/">
    Allow from all
    Order allow,deny
</Directory>

Mongrel は次のようにインストールされます。

mongrel_rails service::install --prefix /redmine -N redmine_prod -p 4000 -e production -c C:\Repositories\redmine

それが誰かを助けることを願っています。最初は、Apache + fastcgi などをセットアップしようとしましたが、さらに貴重な髪の毛を失いました。Windows フレンドリーではありません。

Ps この PDF は非常に便利なリファレンスであることがわかりました: http://www.napcsweb.com/howto/rails/deployment/RailsWithApacheAndMongrel.pdf

/ダミアン

于 2009-02-09T16:39:44.523 に答える
0

Passenger(http://modrails.com)は、構成が非常に簡単であるため、fastcgiのより良い代替手段です。これを使用して、現在と同様の構成を使用してRailsアプリをホストすることをお勧めします。

于 2009-01-23T01:59:38.067 に答える
0

私はレーダーに同意します。Passengerはセットアップが非常に簡単で、Rails アプリがメモリを共有できるため、雑種のクラスターを管理する負担が軽減され、実質的に構成を必要としません。必要なのは、RackUp 構成を含む特別な「config.ru」ファイルと、 Apache で設定されたRAILS_ROOT /public を指す DocumentRoot だけです。

于 2009-02-09T17:37:48.113 に答える