機能 ショートカットキー
リファレンス(参考URL)一覧へ移動 R
記事URLをMarkDownとしてコピー Ctrl+M
前のコードタグへ移動 Ctrl+←
次のコードタグへ移動 Ctrl+→
ヘルプを表示・非表示 H
Tips
- ショートカットキーは記事上で有効です。ヘッダー/フッター付近では機能しないことがあります。
- コードタグ移動機能がうまく動かないときは、Shift+F5でページを更新してみてください。
- このウィンドウを閉じるには、Hキーをもう一度押してください

sinatraでHTTPサーバー構築してPOSTリクエストしてみた

プログラミング

普段ローカルで開発していて、IPの割り振られているVPSなんかのサーバーでグローバルにアクセスできるRubyのHTTPサーバーってどうやったらいいのかなって不安だったんですが、sinatraでIPアドレス指定するだけでできました。

まず、apache2を起動している状態で試してみた。


# ruby app.rb -o 150.95.142.140 -p 80 Ignoring ffi-1.9.23 because its extensions are not built. Try: gem pristine ffi --version 1.9.23 Ignoring http_parser.rb-0.6.0 because its extensions are not built. Try: gem pristine http_parser.rb --version 0.6.0 == Sinatra (v2.0.3) has taken the stage on 80 for development with backup from Thin Thin web server (v1.7.2 codename Bachmanity) Maximum connections set to 1024 Listening on 150.95.142.140:80, CTRL+C to stop Stopping ... == Sinatra has ended his set (crowd applauds) Traceback (most recent call last): 11: from /root/gems/gems/sinatra-2.0.3/lib/sinatra/main.rb:26:in `block in <module:Sinatra>' 10: from /root/gems/gems/sinatra-2.0.3/lib/sinatra/base.rb:1459:in `run!' 9: from /root/gems/gems/sinatra-2.0.3/lib/sinatra/base.rb:1525:in `start_server' 8: from /root/gems/gems/rack-2.0.5/lib/rack/handler/thin.rb:22:in `run' 7: from /root/gems/gems/thin-1.7.2/lib/thin/server.rb:162:in `start' 6: from /root/gems/gems/thin-1.7.2/lib/thin/backends/base.rb:73:in `start' 5: from /root/gems/gems/eventmachine-1.2.5/lib/eventmachine.rb:194:in `run' 4: from /root/gems/gems/eventmachine-1.2.5/lib/eventmachine.rb:194:in `run_machine' 3: from /root/gems/gems/thin-1.7.2/lib/thin/backends/base.rb:63:in `block in start' 2: from /root/gems/gems/thin-1.7.2/lib/thin/backends/tcp_server.rb:16:in `connect' 1: from /root/gems/gems/eventmachine-1.2.5/lib/eventmachine.rb:530:in `start_server' /root/gems/gems/eventmachine-1.2.5/lib/eventmachine.rb:530:in `start_tcp_server': no acceptor (port is in use or requires root privileges) (RuntimeError)

まぁエラー。

apacheをstopして再実行。

/etc/init.d/apache2 stop

できました。

# ruby app.rb -o 150.95.142.140 -p 80
Ignoring ffi-1.9.23 because its extensions are not built. Try: gem pristine ffi --version 1.9.23
Ignoring http_parser.rb-0.6.0 because its extensions are not built. Try: gem pristine http_parser.rb --version 0.6.0
== Sinatra (v2.0.3) has taken the stage on 80 for development with backup from Thin
Thin web server (v1.7.2 codename Bachmanity)
Maximum connections set to 1024
Listening on 150.95.142.140:80, CTRL+C to stop

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_b8a1d94f-044f-4435-a9bd-562532ffdb78.png

curl http://150.95.142.140/ -X POST -d ‘html=hogehogehoge’

この記事で欲しい情報が見つからなかった方へ

この記事の更新情報がある場合があります。
この記事は以下の記事とも関連性があると思われます。

sinatraにIPで接続出来ない場合の対処
Ruby sinatra 使い方
sinatraとautohotkeyでスマホからWindowsを遠隔操作する


管理人の方針で、既存の記事の編集はせず、新しい情報や大きな既存情報の更新があった場合には、新しい記事として公開することになっています。
当記事で欲しい情報が見つからなかった・解決に至らなかった場合、これらのリンクがお役に立てるかも知れません。

どうやってこの関連記事を生成しているの?
この機能のPHPソースコード(2500行)

コメントを残す

Close Menu