Giter Club home page Giter Club logo

ennou's People

Contributors

arton avatar nagachika avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ennou's Issues

ennou で https を利用したい

質問なのですが ennou を使って https スキーマの通信を受け付けることは可能でしょうか?
lib/rack/handler/ennou(mu).rb に server.add を追加して https 用のサーバも追加する必要はあると思いますが、SSLソケットの処理は ennou には含まれていないように思います。
一方 IIS の SSL設定の説明等を読むと、HTTP.sys でカーネルモードで SSL暗号化/複合化を行うというような記述があったため、その機能を用いてennouでもSSL通信を利用できるのではないかと考えています。
http://technet.microsoft.com/ja-jp/library/dd939069.aspx

ennou で https 通信する方法について事例やサンプルがありましたら教えていただけませんでしょうか。

public配下を参照するには

いつもお世話になっております。

くだらない質問で申し訳ありませんが、演能で、public配下を参照するにはどうすれば良いのでしょうか?
WEBrick だと、xxx.xxx.jp:3000/ で public/index.html が表示されますが、演能の場合、
xxx.xxx.jp/ だと 404 に、xxx.xxx.jp/#{RAILS_RELATIVE_URL_ROOT} だと、Routing Error となります。

【要望】graceful shutdown に対応してほしい

NougakuDo/Ennou に graceful shutdown に対応して頂きたいです。ここで言う graceful shutdown とは、停止が指示されてからクライアントからの新たなリクエストは受け付けず、ただし受信済みのリクエストの処理は完了してリプライを返してから停止する機能のことです。

現在 NougakuDo を NougakuDoCompanion を用いて Windows Azure 上にデプロイしてサービス提供しようとしています。
Windows Azure を用いるメリットにはスケールアウトが簡単にできるという点がありますが、スケールダウン(台数を減らす)時にはそのままだとクライアントからの要求を処理中のインスタンスが落とされた場合リプライを正常に受け取れないようです。
そのため、NougakuDoCompanion の AdminWeb の機能を用いて Rails アプリのインスタンスを停止した後にサーバ数を減らすことで安全なスケールダウンを行いたいのです。しかし現状ですと NougakuDoCompanion から Rails アプリ停止すると、処理中のリクエストがあっても停止されてしまうようです(sleep を入れてわざと長くかかるリクエストを作って実験してみました)。そのため停止時の動作を graceful shutdown として頂きたいです。

Ennoumuの処理割り当てについて

いつもお世話になっております。

Ennoumuで複数プロセスを起動している場合に、リクエストに対して割り当てられるプロセスの決定はどのように行なっているのですか?
単純にラウンドロビンで割り当てられるのでしょうか?
複数プロセス起動時、あるリクエストがたまたま重い処理を行なっている場合、軽いリクエストまで止まっているようなので、このような質問をさせていただきました。

【質問】getでリクエストを送信した際Rack::Lintエラー

開発環境で以下の事象が発生しております。
どの部分に問題があるか特定できないため、何かご存じでしたら
ご教示ください。
ennouに関わる問題かどうかの切り分けができておりませんが、
ご容赦ください。
# 全般的に知識が不足しておりまして、初歩的ミスでしたら申し訳ありません。

■事象
getでリクエストを送信時に以下のエラーが発生。
Rack::Lint::LintError at
env missing required key SERVER_NAME
# envが全てなくなっています

■開発環境
Win7 Professional
NougakuDo 1.3.0

直接関係あるかわかりませんが、いくつか試行してみたことを
以下に記載します。
・postで送信すると事象は発生しない。
・webrickで動作を確認したところ事象は発生しない。
・QueryStringを減らす(約500文字→約300文字)と事象は発生しない。
(QueryStringの文字数は500文字程度で長さの制限による
問題はないと考えます)

以上、よろしくお願いいたします。

【質問】1MBを超えるファイルをアップロードするとLintErrorとなる

能楽堂1.3.1に付属のEnnou 1.1.3にて、1MBを超える(境界値はよくわかりません)ファイルのアップロードを行うと、LintErrorが発生します。
当方、jquery.upload にてファイルのアップロードを行っております。
バイナリファイルでも、ASCIIのみのテキストでも同様の結果となります。
その際のスタックトレースは以下になります。

Rack::Lint::LintError: rack.input #File:0x000000051462c0 is not opened in binary mode
C:/Users/_/AppData/Roaming/NougakuDo/lib/ruby/gems/1.9.1/gems/rack-1.4.1/lib/rack/lint.rb:19:in assert' C:/Users/**_/AppData/Roaming/NougakuDo/lib/ruby/gems/1.9.1/gems/rack-1.4.1/lib/rack/lint.rb:274:in check_input'
C:/Users/
/AppData/Roaming/NougakuDo/lib/ruby/gems/1.9.1/gems/rack-1.4.1/lib/rack/lint.rb:226:incheck_env' C:/Users/**_/AppData/Roaming/NougakuDo/lib/ruby/gems/1.9.1/gems/rack-1.4.1/lib/rack/lint.rb:42:in _call'
C:/Users/
_/AppData/Roaming/NougakuDo/lib/ruby/gems/1.9.1/gems/rack-1.4.1/lib/rack/lint.rb:36:in call' C:/Users/***/AppData/Roaming/NougakuDo/lib/ruby/gems/1.9.1/gems/rack-1.4.1/lib/rack/showexceptions.rb:24:incall'
C:/Users/
_/AppData/Roaming/NougakuDo/lib/ruby/gems/1.9.1/gems/rack-1.4.1/lib/rack/commonlogger.rb:20:in call' C:/Users/**_/AppData/Roaming/NougakuDo/lib/ruby/gems/1.9.1/gems/rack-1.4.1/lib/rack/chunked.rb:43:in call'
C:/Users/
**/AppData/Roaming/NougakuDo/lib/ruby/gems/1.9.1/gems/rack-1.4.1/lib/rack/content_length.rb:14:incall' C:/Users/***/AppData/Roaming/NougakuDo/lib/ruby/vendor_ruby/1.9.1/rack/handler/ennou.rb:82:in block in run_thread'

解決策がありましあら、教えていただけないでしょうか。
お手数ですが、よろしくお願いいたします。

【質問】レスポンスヘッダにContent-Dispositionを指定したい

知識不足のため場違いな質問でしたらすいません。
ファイルダウンロードをさせるため、レスポンスヘッダに "Content-Disposition" を追加している(以下)のですが、実際に返さえるレスポンスには "Content-Disposition" が出力されていません。
response.headers['Content-Disposition'] = "attachment; filename="test.txt""

WEBrick では追加できるのですが、何か方法はないでしょうか?
お手数ですが、よろしくお願い致します。

[要望?]CTRL-Cの動作について

araiです。ennouの起動コマンドを
[full path]ruby.exe -C[full path]\bin [full path]\bundle exec [full path]\rackup -p 80 -E production -s Ennou [full path]\config.ru
としてコマンドラインから起動して、CTRL+Cをタイプすると「バッチファイルを終了しますか?」となります。
NougakudoLauncher.exe で上記コマンドで起動して、GenerateConsoleCtrlEvent APIでCTRL+Cをエミュレートすると
[2012-09-03 14:49:55] INFO Ennou(1.1.5) stop service for http://+:80/nougakudo132s pid=11708
プロセスが、存在しないパイプに書き込もうとしました。
となります。
実害はないのですが、これって避けられない挙動なのでしょうか?

能楽堂はWindows8では動きませんか?

能楽堂に関する質問ですみません。
OSはWindows8です。
ennou自体は動くのですが、肝心のnougakudou.htaが動きません。
マニュアルサイトを見ると、起動時の画面にennouのバージョン情報なども出ている
ようですが、それも出てきませんし、config.ruを読み込ませても
画面に何もでてきません。

スタート画面ではなく、単独で起動させると、スクリプトエラーが出ます。
initが定義されていない、というような表示です。

やはり、Windws7 64bitや、サーバーでないと難しいのでしょうか?

rubyのワーカープロセスが終了してしまう

お世話になっております。

10のIssueの取り込み版でAzure上で動作(ホワイトペーパーのhelloアプリ)させたところ、

やはり最終リクエストの30分程度後のリクエストでrubyのワーカープロセスが終了してしまいます。

10のときと同様に

rack/handler/ennoumu.rb の l.58 rescue Interrupt の部分にデバッグプリントを挿入して
手動で rackup を実行してみたのですが、デバッグプリントに制御が到達しなかったため、
別の原因と考えます。
(ennou.cのwait_io関数にデバッグを入れて実行してみたのですが、statは
WAIT_TIMEOUTとWAIT_OBJECT_0のみのように見えます)
#Azure上のみ発生し、ローカルでは発生しません

知識不足で恐縮ですが、発生し得るケースに心当たりがあればご教示ください。

【要望】 能楽堂にrroongaを同梱してほしい

能楽堂はSQLiteも同梱されていてすぐにRailsアプリケーションの開発を始められて便利です。

そんな能楽堂にrroongaという全文検索ライブラリを同梱してもらえないでしょうか?

効率よくユーザーに適切な情報を提供するために検索技術がより重要になっています。
RDBでもLIKEを使って簡単な全文検索機能を実現できますが、 フレーズ検索関連文書検索 や入力補完機能など最近の検索システムで使われているリッチな検索機能を実現できません。
例えば、Rubyのリファレンスマニュアルを検索する るりまサーチ ではリッチな検索機能を利用して効率よくユーザーに適切な情報を提供しようとしています。

rroonga はリッチな検索機能を持つ全文検索システム groonga のRubyバインディングです。groongaはサーバーとしても使えますが、SQLiteのようにプロセスに組み込む形でも使えるため、インストールさえしてあれば前準備をする必要がなく、導入が容易です。なお、るりまサーチもrroongaを使って実装されています。

ということで、能楽堂にrroongaを同梱して、簡単にリッチな検索機能を組み込んだアプリケーションを作れるようにしてもらえるとうれしいです。

(もし、前向きに検討してもらえるということになったら、ビルド方法とかについて説明します。)

Ennoumuが無応答になる

いつもお世話になっております。
NougakuDo 1.3.5の環境で、RailsアプリをEnnoumuで実行していると、レスポンスが返ってこなくなることがあります(Win2008 R2、SQLServer2012Express使用)。
管理者コマンドプロンプトで、rackup -s Ennoumu -p 80 で実行しています。
まれに、コマンドプロンプトでEnterを叩くと動き出すことがあります。
2プロセスで使用していますが、やがて、新たなリクエストも受け付けられなくなり、Ctrl-Cを押しても
Ennou(1.1.6) stop service for http://+:80/da pid=xxx
を表示するものの終了しません(しばらく放置するとTerminate batch job (Y/N)?が表示されます)。

ennoumu.rb に rescue を(rescue Interruptの下に)追加し backtrace を取得してみたところ、以下を延々と出力しているようです。

#<SystemCallError: unknown error - wait HttpReceiveHttpRequest (6)>
C:/**/NOUGAK~1/lib/ruby/vendor_ruby/1.9.1/rack/handler/ennoumu.rb:55:in `wait'
C:/**/NOUGAK~1/lib/ruby/vendor_ruby/1.9.1/rack/handler/ennoumu.rb:55:in `block (2 levels) in run'
C:/**/NOUGAK~1/lib/ruby/vendor_ruby/1.9.1/rack/handler/ennoumu.rb:53:in `loop'
C:/**/NOUGAK~1/lib/ruby/vendor_ruby/1.9.1/rack/handler/ennoumu.rb:53:in `block in run'
C:/**/NOUGAK~1/lib/ruby/vendor_ruby/1.9.1/rack/handler/ennoumu.rb:28:in `open'
C:/**/NOUGAK~1/lib/ruby/vendor_ruby/1.9.1/rack/handler/ennoumu.rb:28:in `run'
C:/**/NOUGAK~1/lib/ruby/gems/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:265:in `start'
C:/**/NOUGAK~1/lib/ruby/gems/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:137:in `start'
C:/**/NOUGAK~1/lib/ruby/gems/1.9.1/gems/rack-1.4.1/bin/rackup:4:in `<top (required)>'
C:/**/NOUGAK~1/bin/rackup:23:in `load'
C:/**/NOUGAK~1/bin/rackup:23:in `<main>'

なにが原因かわかりますでしょうか?
お手数ですがよろしくお願いいたします。

ruby 2.4.0-preview1

test_server.rbのtest_large_postでエラーとなる。

  1. rb_str_set_lengthがshared stringで例外をスローする
  2. rb_str_set_lengthがバッファアンダーフローの報告をする(前回読み取りが既定のバッファサイズより小さい場合)
    リクエストボディの長さが不明な場合は、スタックに確保したCのバッファに読み込み、Tempfileに書き込む時点でStringを生成するように修正。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.