HTTPS+Nginx+Rails環境でActionController::InvalidAuthenticityTokenRailsnginx 症状 Deviseのログインをしようとすると422エラー ActionController::InvalidAuthenticityToken Chrome, Safariで発生 Firefoxでは発生しなかった 発生条件 下記条件で発生しました。他の要因があるかもしれないし、関係ないかもしれません。参考程度に。 Nginx 1.6.3 Puma 3.4.0 Rails 5.0.0.rc1 HTTPS強制(Railsの force_ssl ではなくNginxの設定で) 対処法 Nginxの設定ファイルはこんなかんじになっていた(抜粋)。 # -----------------------------------------------------
クラウド破産しないためのサービス選び 同じゲームを作った仲間がクラウド破産しそうになりました。個人で破産したくなかったのでこの時点で従量課金制であるAWSとGoogleCloudは除外。さくらかConoHaかなと思っていたのですが、ConoHaがSSDプランを格安で始めていたのでConoHaを選択しました。昨年お仕事で使ってたAWS-RDSのHDDをSSDに切り替えたらCPU使用率とスループットが大幅に改善したのでSSD万能説を信奉することにしました。 サーバ構成をどう設計するか オールインワンかDB+APPサーバ構成にするか。サーバを分割した場合DBとAPP間の通信レイテンシが気になります。サーバが異なっていてもconnection poolingをちゃんと設定していれば1-5msで応答が返ってきます。オールインワンで構築すると将来DBサーバとAPPサーバを分割するときDB移管作業がとっ
The ngx_http_headers_module module allows adding the “Expires” and “Cache-Control” header fields, and arbitrary fields, to a response header. expires 24h; expires modified +24h; expires @24h; expires 0; expires -1; expires epoch; expires $expires; add_header Cache-Control private;
大規模なサイトでは、クライアントからのアクセスを効率よく受け付けるためにオリジナルのコンテンツを保持するオリジンサーバのほかに、何らかのリバースプロキシも運用してコンテンツの配信をしています。まず、ここではリバースプロキシとして利用できるプロダクトの中からコンテンツキャッシュの機能(キャッシュサーバ)について説明します。 キャッシュサーバに期待される役割 コンテンツを配信する上で、キャッシュサーバには以下のような役割が期待されています。 コンテンツをキャッシュデータとして保持すること キャッシュデータを管理すること オリジンサーバへの問い合わせを減らすといった負荷分散をすること 大抵のキャッシュサーバでは、キャッシュしているコンテンツを有効期限(Time To Live : TTL)付きのキャッシュオブジェクトとして保持していますが、TTLを無視してキャッシュオブジェクトの更新をしたい、と
After debugging for 6-hours - I am giving this up :| We have a nginx+php-fpm+mysql in LAN with almost 100 wordpress (created and used by different designers/developers all working on test wordpres setup) We are using nginx without any issues from long. Today, all of a sudden - nginx started returning "504 Gateway Time-out" out of the blue... I checked nginx error log for a virtual host... 2010/09/
インフラチームの@cubicdaiyaです。今回はnginxのビルドプロセスを自動化するツールであるnginx-buildについて紹介します。 メルカリとnginx メルカリでは多数のnginxを活用し、高速なレスポンスやサービスの安定稼働を実現するのに重要な役割を果たしています。実際の活用事例には、 リバースプロキシ、L7ロードバランサ TLSターミネーション、SPDYゲートウェイ 静的コンテンツの配信、キャッシュ ngx_dynamic_upstreamを用いたゼロダウンタイムデプロイメント ngx_lua(OpenResty)を用いたサービスコンポーネントの開発 などが挙げられます。そしてメルカリではこれら多数の用途のnginxをnginx-buildでソースコードからビルドしています。(OpenResty以外は合わせてrpm化も行っています) 既存のビルド済みパッケージの利用とソー
Nginxを使ったWordPressのチューニングといえば、フロントエンドのNginxとバックエンドのNginx(もしくはApache)に分けてproxy cacheを効かせるのが王道です。 さらにWP Super Cacheプラグインを利用してなるべくPHPやMySQLにアクセスさせないようにすると、手軽で絶大なパフォーマンスアップが可能です。 今回はそこからもう一歩進めたチューニングについて書きたいと思います。 二段階層を廃したシンプルな構成 まずは、図をご覧ください。 前述の王道チューニングの構成はA図となります。 proxy cacheはNginxがバックエンドのサーバーに処理を回し、返ってきたレスポンスをキャッシュして、Nginx自身がキャッシュを返すことでパフォーマンスを上げる仕組みです。 A図-1がキャッシュの無いアクセス、A図-2がキャッシュが効いているアクセスを表していま
Nginx + PHP-FPM で WordPress を動かしてみました。 環境 CentOS 6.6 Remiリポジトリの追加 以下のページ通りにRemiリポジトリとEPELリポジトリを追加しておきます。 (Remiリポジトリを利用するにはEPELリポジトリが必要) 【Linux】EPEL, Remi, RPMforgeリポジトリを追加する方法 - kzy52's blog PHP のインストール $ sudo yum -y --enablerepo=remi install php php-mbstring php-mysql 設定ファイル # /etc/php.ini ; デフォルトの文字コード default_charset = "UTF-8" ; タイムゾーンの設定 date.timezone = "Asia/Tokyo" [mbstring] ; デフォルト言語の設定 mbs
リアルタイム集計・可視化環境(Norikra+Kibana4+Elasticsearch+Fluentd+Nginx)をfig一発で気楽に立ち上げる。ElasticsearchDockerNorikraKibanafig このエントリーはドワンゴアドベントカレンダー17日目のエントリーです。 ストリーム処理エンジンのNorikraについて、最近聞くことが増えてきました。 使ってみたい方は結構いるのではないでしょうか。 とは言え、「ストリーム処理を試してみたい、環境構築してやってみよう」と思っても、JRuby入れてNorikra入れて、fluentd入れてNorikraとのin/outの連携して、集計結果を格納する為にElasticsearch構築して、Kibanaから見れるようにして、認証機構や改廃の機構も入れて...あ、ストリームソースも用意しなきゃ...となって、そこそこ手間が掛かりま
2010年の年末に、「カイ士伝」のさくらVPSへの引っ越しを手伝ったわけですが、その後も元気にサーバは動き続けているようです。 引っ越し当初は、Web サーバとして lighttpd を導入してたんですけど、僕の個人的な好みがかわって、途中で Nginx に切り替えました。 特に大きなトラブルもなくサクサクと動いてたようですが、昨日突然の Yahoo!砲で、平常時の数倍のアクセスがあったようです。 Yahoo!砲くらったけど月額980円のさくらVPSとチューニングでサーバー落とさず乗り切ったよ – カイ士伝 ただ、アクセスが大量にあった初日(1記事に5.5万PV)にもサーバ負荷が高くなってるとか気付かずに、余波でちょっと多くなってた翌日(1記事に1.3万PV)に気づいたというくらいの平常運転っぷり。 Nginx 痺れますわー。 僕は、カイ士伝の WordPress ダッシュボードにログイン
SD12月号のdocker特集にあったやつ。 ngixnxをリバースプロキシとして目的のdockerのコンテナにプロキシする。 dockerのコンテナの管理とかはfig使った。 meu@u01:~/docker/dproxy$ find . -type f ./linkd/Dockerfile ./linkd/linkd ./fig.yml ./redis/Dockerfile ./redis/redis.conf ./nginx/Dockerfile ./nginx/nginx.confmeu@u01:~/docker/dproxy$ cat fig.yml nginx: build: nginx command: /usr/sbin/nginx ports: - "80:80" links: - redis redis: build: redis command: /usr/bin/r
こんにちは。CTOの馬場です。 最近利用する機会が増えてきたdockerネタです。 nginxを動かすときのTipsを3つ紹介します。 foregroudで起動する dockerではコマンドをforegroundで動かさないとコンテナが停止してしまいます。 nginxはデフォルトはデーモンとして動くので、foregroundで動くように設定しましょう。 nginx.confで設定するならこうです。 daemon off; Dockerfileの起動コマンドで指定するならこうです。 CMD ["/usr/sbin/nginx", "-g", "daemon off;"] 動的な設定を外部化する イメージの中に設定値を入れちゃうのはダサいですよね。 コンテナ起動時に動的に設定したいものです。 dockerの場合は docker run 時に -e で環境変数を指定できるので使いましょう。 do
技術部の鈴木 (id:eagletmt) です。 クックパッドでは一部の Web アプリケーションサーバで Docker が使われており、今回はそのデプロイ方法について紹介します。 Docker で Web アプリケーションをデプロイするときには、まだまだベストプラクティスがある状況ではありません。 たとえば、どのように無停止でデプロイするか、どのようにコンテナと通信するかといった問題があります。 最初に Apache Mesos と Marathon などのツールを検証しましたが、クックパッドの環境において使いやすそうなものはなく、最終的に自前でデプロイのしくみを作ることにしました。 しかし Docker 周辺のツールは様々な新しいものが出てきている最中です。 今はまだベストなものが無いけれども、近いうちによりよいものが出てくるかもしれません。 そのため、できるだけ単純なしくみにしておく
私はVPSと自宅LAN内でDjangoで作った個人的なwebサービスをいくつか運用しています。 現在の運用環境はapache+mod_wsgiですが、ネットで色々調べていると、nginxとgunicornとsupervisorを組み合わせるのが旬(?)のようなので、その方法について色々調べたことを書きたいと思います。 具体的には、nginxがリバースプロキシ兼Webサーバとして、キャッシュと静的ファイルの配信を担当し、gunicornがバックエンドとして動的なページ生成を担当し、supervisorがサーバプロセスの監視を行う、という構成です。 環境としては、CentOS 5.X を想定しています。 nginxのインストール CentOSにnginxをイントールする方法はこちらのページに詳しく書かれているので、それを参考にしました。configureの引数のうち、追加した方が良さそうなもの
この数年、急激にシェアを伸ばし、大きな注目を集めているWebサーバ「Nginx」。その開発者と経営陣が、商用版「NGINX Plus」の国内販売開始に合わせて来日した。 来日したのは、Nginxのオリジナル開発者でCTOのIgor Sysoev氏、Sysoev氏と共に創業し現在はDirector of Business Developmentの任に就くAndrew Alexeev氏、2012年12月に両氏に招かれCEO として会社を取り纏めるGus Robertson氏の3名。Nginxの中枢を担う人物達だ。 本誌は、彼らに面会する機会を得て、開発の経緯やポリシー、今後の展開などを聞いたので、その模様をお伝えしよう。 Apacheのプロキシ機能に不満があり、開発に着手 Nginxは、Web系企業を中心にこの数年で急激にシェアを伸ばしているWebサーバ。パフォーマンスとスケーラビリティに優れ
Fluent Dashboardって? Fluent Dashboardは、Fluentdで集計したデータをグラフやテーブルで表示できるGoogle Spreadsheet。fluent-plugin-https-jsonを使ってイベントログを送ると、以下のようにリアルタイムにデータを表示してくれる。 使い方 詳しい使い方はREADMEにある通りで、Spreadsheetをコピーして公開設定等をポチポチするだけで準備完了。3分もかからない。あとはfluent-plugin-https-jsonのログ送信先URLとしてFluent SpreadsheetのエンドポイントURLを指定すれば動き始める。 集計ログの表示向け 任意のFluentdログを受け取ってグラフやテーブルを描けるけど、大量のログを直接受け取ることはできない。集計後のログを3秒に1回ほどの割合で受け取って表示する、といった使い
問題 nginxでロードバランサとしても動くリバースプロキシを設定してみた。んだけど、502 Bad Gateway。なんじゃそりゃ? 要件 xxx.xxx.xxx.xxxというグローバルIPと tainaka.comという名前が与えられているリバースプロキシがいる tainaka.comという名前でリクエストが来た場合は 物理的には同サーバで動いているアプリケーションのポートにリクエストを振る アプリケーションは複数プロセス立っていて、それぞれ違うポートで動いている プロキシサーバはポート80番でnginxしか開かない ロードバランサつくるお 以下のように/etc/nginx/nginx.confを設定 # 基本デフォルトなので抜粋 http { upstream ritsu { server localhost:19001; server localhost:19002; server
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く