背景 ECSでNginxのコンテナをプロキシとして立てたところ、APIサーバのアクセスログのクライアントIPがNginxのコンテナIPになっていたのでその修正をしたのがきっかけです。 環境 Nginx 1.10.2 Docker1.12.1 構成 Client -> ELB -> Nginx -> API という構成とします。 ネットでよく見る情報 set_real_ip_from 172.31.0.0/16; real_ip_header X-Forwarded-For; を追加する、とか proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; を追加する、とかどれがどれだか分かりにくいので1つ1つ説明していきます。 用語説明 remote_
nginx restartだと、処理が止まる? 再起動をする時に、もし途中まで処理をしている時があったら? リクエストの処理中に nginx restartをすると、その処理を止めて再起動を行う。 できれば、途中の処理を止めず再起動したい。 graceful restartする方法 途中の処理を完了してからrestartさせる。graceful restartと呼ばれる方法を取るには、 nginx -s reload nginxの場合は以上のコマンドで実行可能。 個人的なサーバーを再起動する時には良いですが、色んな人がアクセスしているサーバーは、 極力gracefull restartをするようにするφ(・・ お金が発生するとか、不特定多数の人がアクセスする場合は、blue green deploy等、ダウンタイムが発生しない対応しましょうφ(・・
アフィリエイターけーちゃんの個人サイトです。アフィリエイトをやっていて疑問に思ったことやサイト構築などについてきままに投稿しています。 エックスサーバーの公式ページを見ると、WebサーバーにNginxを採用したことで大量の同時アクセスに強いと書かれています。 Webサーバーに強い人はこれを見て、「じゃあ.htaccessを使えないんだな」と思った人も多いはず。 僕もそう思っていました。 ネットで紹介されているリダイレクト設定や、国外からの閲覧禁止などのアクセス制御方法は、ほとんどがhtaccessを使用することを前提としたものです。 しかしNginxは、.htaccessを使えません。 つまり何かしようと思っても、その情報のほとんどが役に立たないのです。 素人がNginxに手を出してはいけません。 ところがエックスサーバーのコントロールパネルを見ると… 『.htaccessの編集』機能があ
概要 Nginx では標準で提供されている limit_conn モジュールを使用して、接続数制限を提供します。 接続数制限によって、同一の接続元からの接続が制限でき、DoS攻撃から防御できます。あるいは、TCPの接続数を制限することによって、高負荷時にもWebサービスの処理を継続させることが目的です。 今回は、Nginx 接続数制限 (limit_conn) の設定方法、ab (apache bench) による接続数制限の検証方法をまとめます。 事前準備 EC2 の Amazon Linux 2 インスタンスを起動します。 インスタンスのUser data 設定に、下記を記載します。Amazon Linux 2 のnginx は、amazon-linux-extrasを使用します。amazon-linux-extras の詳細はこちらを参照。 #!/bin/bash sudo yum
map $http_origin $cors{ "^http://localhost(:\d+)?" $http_origin; "^https://chirimen-jako.com" $http_origin; } server { if ($host = api.chirimen-jako.com) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; listen [::]:80; server_name api.chirimen-jako.com; return 404; # managed by Certbot } server { server_name api.chirimen-jako.com; root /usr/share/nginx/html; # Load configu
ユーザーとエンドユーザーの間の通信を暗号化するには、SSL証明書を購入してサーバーにインストールし、証明書を使用してこれらの通信を保護するようにWebサイトを構成します。 SSL接続は、エンドユーザーのブラウザがWebサイトにアクセスする際に開始されます。開始の最初の段階でハンドシェイクが行われます。 このハンドシェイク過程で、ブラウザとサーバーの暗号化に利用する情報が交換され、検証が行われ、ブラウザとサーバー両方の基準を満たすセッションキーが作成されます。 セッションキーが作成されると、エンドユーザーとサイト間の通信の残りの部分がセッションキーで暗号化されて通信が保護されます。 歴史的に、セッション鍵をネゴシエートする最も一般的な方法は、RSA公開鍵暗号方式です。 RSA公開鍵暗号方式では、ブラウザは作成したセッションキーパラメータをサーバーの公開鍵を使用して暗号化し、サーバに送信します
「freenginx.org」プロジェクトの発足が、2月14日に発表された。“企業の恣意的な行動”から「nginx」の開発を自由に保つのが目的だという。 「nginx」は、クロスプラットフォーム対応・オープンソースのWebサーバーシステム。もともとはロシアのポータルサイト運営のために開発されたが、現在では世界的に広く用いられており、「Apache」と並ぶ市場シェアを誇る。エンタープライズ版の販売やサポートを担当していたNginx, Incは、2019年に米F5 Networksに買収されている。 主要開発者の一人であるMaxim Dounin氏のメッセージによると、F5が2022年にモスクワオフィスを閉鎖したため、それ以降、氏はF5で雇用されていないという。しかし、ボランティアという立場にはなるが、「nginx」開発における氏の役割自体は維持される約束だった。 ところが、F5の新しい経営陣
プロセス関連のチューニング worker_connectionsとworker_rlimit_nofile worker_connectionsはworkerプロセスで開ける同時接続最大数です。 高スペックマシンでは要上方調整。 worker_connections 2048;クライアントの最大接続数➗worker_processes数(≒ vCPU数)worker_limit_nofile 8192;最大オープンファイル数➗worker_processes数(≒ vCPU数) worker_connectionsはworker毎のclientの最大接続数を表しています。 defaultは512に設定されていると思います。 リバースプロキシを利用中は1アクセスでworker_connectionが2つ消費されるので通常の2倍に設定する。 クライアント – nginx(1接続分) 通常の場合
◆ Live配信スケジュール ◆ サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。 ⇒ 詳細スケジュールはこちらから ⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください ◆ 【よくわかるGrafana入門~バックアップ・リストアとアップグレード~】 オンラインセミナー開催 11月10日 12:15~13:00◆ GrafanaとはOSSの可視化ツールです。 サーバーのメトリクス・ログ監視、Kubenetes監視、IoT監視など、ITを中心とした幅広い用途で活用されています。 今回はそのGrafanaのバックアップリストア・アップグレードについて、掘り下げて説明していきます。 ⇒ お申込みはこちらから こんにちは。サイオステクノロジー OSS サポート担当 Y です。 今回は NGINX で Re
今日の内容 nginxのserver_nameはちゃんと設定したほうがいいね。というお話。 めんどくさくて省いたり、default_server をつけちゃったりしてたけど、ちゃんと書くことに意義がある事を知った日でした。 背景 関与しているサービスで、エラーマネジメントサービスにエラーが上がった。意味不明な(想定しない)リクエストを受けてエラーを吐いていた。 request.url がサービスのFQDNではなく他社の仮想通貨取引所のFQDNであった。 どうやら、アクセス元は私が扱うサービスのELBのIPに直接リクエストを送ってきている様だった。 cat /etc/hosts xx.xxx.xxx.xx (ELBのIP) hogehoge.com (適当なホスト名) この状態で curl -X GET https://hogehoge.com/hoge/fuga -k をすると発生する。
Analytics cookies are off for visitors from the UK or EEA unless they click Accept or submit a form on nginx.com. They’re on by default for everybody else. Follow the instructions here to deactivate analytics cookies. This deactivation will work even if you later click Accept or submit a form. Check this box so we and our advertising and social media partners can use cookies on nginx.com to better
最近、Nginx の location 設定の優先順位を誤解していて軽くつまづきました。このへん時々よくわからなくなるので、自分のためにまとめておきます。 情報源 公式の説明は、マニュアルの Module ngx_http_core_module ページ内の "location" の項にあります。 nginx.org location の修飾子(modifier) location を定義する際に使える修飾子は、以下の5種類です。 修飾子 判定方法 = 完全一致 なし 前方一致 ^~ 前方一致 ~* 正規表現(case-insensitive) ~ 正規表現(case-sensitive) 前方一致が2種類ありますが、これは「^~ は省略可能」という意味ではありません。 location の優先順位 location の優先順位を考える上でややこしい点は、書かれた順に評価される設定と、最長
多機能なウェブサーバーとして2004年に登場したNginxは、2023年6月時点では業界トップシェアとなるほど人気を集めるサーバーです。そんなNginxの設定において、スラッシュを一つ付けるか付けないかの差で大きなセキュリティホールができてしまう問題について、大手パスワードマネージャーやGoogle製のツールの例をとりあげてセキュリティアナリストのダニエル・マツモトさんがブログで解説しています。 Hunting for Nginx Alias Traversals in the wild https://labs.hakaioffsec.com/nginx-alias-traversal/ Nginxの設定には、特定のURLへのアクセスをどう処理するべきかを記述できる「location」というディレクティブが存在しており、URLをサーバー内のファイルに対応させるのによく利用されています。例
この記事はZOZOテクノロジーズ 4 Advent Calendar 2019 2日目の記事になります。昨日は @ararajp さんの「評価する際のマイルール 」でした。 はじめに ZOZOの生産チームでは、Go言語でバックエンドのAPI開発をしています。今期になってgRPCを用いたAPIの開発を行おうということになり、既存のRESTのAPIとの共存ができるのかという課題がでてきました。その際に行った実装と検証について書こうと思います。 Nginxの1.13.10からgRPCがサポートされています(最新のバージョンは執筆時1.17です)。基本的には公式サイトのExample実装を弊社プロジェクトに置き換えるという流れで実装と検証をすすめました。 Introducing gRPC Support with NGINX gRPCとは Google社が開発をした通信プロトコルの1つです。高速に
こんにちは。最近、ピストのチェーンを 和泉チエン TOUGH GUARD に替えて、ご機嫌な原口です。 ホスティング事業部の MRE(Messaging Reliability Engineering *ペパボの造語です)というチームで、 SRE ような取り組みを、DNS やメールなどのメッセージングサービスに対して実施しています。 今回は、弊社のホスティングサービスで提供しているメールシステムについてご紹介いたします。 メールシステム構成 弊社のホスティングサービスで提供しているメールシステムは、運用効率化やメールサーバー リプレイス時のダウンタイム削減のため、リバースプロキシを導入しています。 このリバースプロキシについては、過去、dovecot や Courier-IMAP などを利用していましたが、 現在は Nginx に変更しています。メールシステムで Nginx を利用している
ベーシック認証よりも高度に制御をしたい場面がよく出てきます。 関連記事 Nginxにてベーシック(Basic)認証を有効にする手順 特定ユーザーのみアクセス許可を行いたい場合は、ベーシック認証を利用せずクライアント証明書による認証を実施します。手順をまとめましたのでご参考にしてください。 OpenSSLを利用したオレオレ認証局(CA)の準備CA 認証局の鍵を作成まずは設定ファイルの格納場所を任意でディレクトリを作成します。 # cd /etc/nginx # mkdir certificates # cd certificatesOpenSSLを利用したオレオレ認証局が利用する鍵(ca.key)を作成します。 # openssl genrsa -des3 -out ca.key 4096# openssl genrsa -des3 -out ca.key 4096 Generating R
はじめに よく聞く話として、「Web3層構造に分けよう」というものがある。Webサーバー、APサーバー、データベースだったと思う。そこで、こんな疑問が生じた。「APサーバーでもHTTPリクエストの処理ができるなら、なんでWebサーバーが必要になるんだ?」と。調べた。 目次 Webサーバーとは? APサーバーとは? WebサーバーとAPサーバーを分けるもう1つの理由 Webサーバーとは? まずWebサーバーとして、ApacheとNginxの2つが挙げられることが多い。この2つについて理解する。次の記事を読んでみて欲しい。 1. ApacheとNginxについて比較 2. Nginxのアーキテクチャを理解する 1つ目の記事では、Apacheがマルチプロセスのプロセス駆動アーキテクチャであること、Nginxがシングルスレッドモデルのイベント駆動アーキテクチャであることがわかる。 2つ目の記事では
nginx の ngx_http_limit_req_module で rate limit の設定ができる。がパラメータの理解が難しく、当初は設定値の調整に難儀した。背後にある Leaky Bucket というアルゴリズムとその実装を確認することでパラメータもすんなり理解できた。以下調べたことのログを残しておく。 ngx_http_limit_req_module ngx_http_limit_req_module は指定した key ごとに Rate Limit を設定できるというモジュール。key とは例えばリクエスト元の remote_ip で、それごとに「1r/s まで」といった制限を指定できる。 設定はこんな感じ。 http { limit_req_zone $binary_remote_addr zone=myzone rate=1r/s; ... server { ...
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く