Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
並列リクエストを処理する Web アプリケーションのほうが、一度に 1 つのリクエストしか処理しない Web アプリケーションより dyno リソースをより効率的に使用します。Puma は Unicorn と競合する Web サーバーで、並列リクエストの操作ができます。 Puma は、Worker プロセスだけでなくスレッドを使用して、使用可能 CPU をより活用します。Puma でスレッドを使用できるのは、コードベース全体がスレッドセーフな場合だけです。安全でない場合は、Puma を使用できても、ワーカープロセスを通してスケールアウトしなければなりません。 このガイドでは、Puma Web サーバーを使用して新しい Rails アプリケーションを Heroku にデプロイする方法について説明します。基本的な Rails のセットアップについては、Rails スターターガイドを参照し
A Ruby/Rack web server built for parallelism. Contribute to puma/puma development by creating an account on GitHub. 設定の解説 起動方法 $ puma -C config/puma.rb 「-C」でPumaの設定ファイルを指定することが可能。 よく使う設定の解説(config/puma.rb) 設定の全量がこちら。 app_path = File.expand_path('..', __dir__) max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count } # スレッドプールの
はじめに 先日、とあるAPIを作成していたときに 開発環境では、http://localhost:3000/api/users/1のように、パスの最初にapiをつける。 本番環境では、http://api.example.com/users/1のように、apiというサブドメインを利用するためパス内のapiは不要。 というルーティングをやらなくてはいけなくなったので、色々調べてみました。 実装例 先に完成形を示します。これを見ればだいたいわかるかと。 # config/routes.rb constraints Subdomain::Api do namespace :api, path: Subdomain::Api.path do resources :users end end # lib/subdomain/api.rb module Subdomain class Api def
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Rails 6 adds guard against DNS rebinding attacks – Saeloun Blog 原文公開日: 2019/10/30 著者: Aditya Narsapurkar サイト: Saeloun -- Ruby on Railsのコンサルティング会社で、Rails + React開発のほかに、React Nativeによるモバイルアプリ開発も手がけています。 参考: DNS Rebinding ~今日の用語特別版~ | 徳丸浩の日記 Rails 6にはDNSリバインディング攻撃から保護する機能が#33145で追加されました。この機能はdevelopment環境ではデフォルトで有効になっており、他の環境でもオプションで有効にできます。 DNSリバインディング攻撃とは DNSリバインディング攻撃
セッション管理はWebアプリケーションを開発・運用するときに必ず関わってきますので、ある程度知っておかなければいけないことかと思うのですが、Railsのセッション管理について解説している資料が少ないように思えました。私もRailsのセッション管理についてあまり知識がありませんでしたので、簡単にですがまとめてみました。 なお、今回のエントリはセッション管理の大雑把な仕組みについて知っていることを前提にして進めていきます。セッション管理の仕組みについてご存知ない方は、『体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践』という書籍での説明がわかりやすかったので、そちらをご一読されると良いかと思います。 Railsのセッション管理方法 Railsでは、config/initializer/session_store.rbファイルにセッションの管理方法を指定します
はじめに 本記事では徳丸本の第4章を元にWebセキュリティの基本を紹介するとともに、 Ruby on Railsの実装例から、人類がどのように脆弱性と向き合ってきたかを紹介します。 XSS XSSは最もよく発生するWebセキュリティ上の脆弱性として知られています。 (参考)http://it-trend.jp/security_assessment_service/article/market XSSとは、クライアント側のコンピュータに実行可能な悪意のあるコードが注入されてしまう攻撃手法です。 XSSの種類 反射型XSS 悪意のあるコード(主にJavascript)が、攻撃対象のサイト内ではなく、別のサイトやメールの本文中にある場合を反射型XSSと呼びます。 HTTPリクエスト中にパラメータとして含まれる攻撃コードが、そのまま攻撃対象のWebページ上で動作します。 ※以下のようなリンクを踏
webmockとは HTTPリクエストをstubするgemです。 Net::HTTPだけでなく、TCPSocketを使った場合もstubしてくれます。 以前、sham_rack使ってみたという記事を書きましたが、 sham_rackはNet::HTTPのstubしかしてくれないのです。 TCPSocketをstubしてくれるgemを探していたところ、このgemに出会いました。 何ができるか HTTPリクエストをリクエストホストに対して投げる前にフックして、あたかも処理されたようにレスポンスを返すことができる。 つまり、StubやMockのようなことができる。 しかも、Net::HTTPだけでなくTCPSocketも対応してくれる。 => HTTPClientやExconもstubできることに! 有名なgemなので、いろんな方が記事にされていたりしますが、テスト中のリクエストのstubに利用
Ruby 上で http を叩いた通信見たい時に、毎回同じ事をやってるので抽象化して http-dump というライブラリを作った。 https://github.com/hotchpotch/http-dump $ gem install http-dump require 'net/http' require 'uri' require 'http-dump' HTTPDump.dump { Net::HTTP.get(URI('http://example.com')) } と http でやりとりしてるコードを block で囲むと、以下のように出力される。 > GET http://example.com/ with headers {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=
:network_authentication_requiredちなみにこれのRuby元コードはどこにあるかというとrack/rackの/lib/rack/utils.rbにあります。 HTTP_STATUS_CODES = { 100 => 'Continue', 101 => 'Switching Protocols', 102 => 'Processing', 200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content', 207 => 'Multi-Status', 208 => 'Already Reported', 226
Amazon EC2 に Nginx をインストールして起動しようとすると、以下のようなエラーが出て起動に失敗しました。 $ sudo service nginx start Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) nginx: [emerg] still could not bind() エラーメッセージにある通り、ほかのプロセスが先に 80 番ポートをリッスンしていたのが原因でした。 特定のポートをリッスンしているプロセスを調べるには lsof コマンドが使えます。ポート番号を調べるには i オプションを使います。なお、lsof コマンドを実行するには root 権限が必要です。 $ sudo lsof -i:80 COMMAND PID USER F
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く