タグ

nginxとgoに関するnabinnoのブックマーク (2)

  • GoのWebアプリでクライアントIPを検出するrealipモジュール | おそらくはそれさえも平凡な日々

    github.com/natureglobal/realip これはngx_http_realip_moduleと同様の挙動を、Goのhttpハンドラをラップするミドルウェアレイヤで実現するものです。 アプリケーションが信頼できるNginx等のproxy配下にあれば、X-Real-IP ヘッダなどをそのままクライアントIPとして採用すればよいのですが、クラウドのロードバランサー、例えばALBなどに直接Goのアプリケーションをぶら下げている場合、ALBはX-Real-IPを付けてくれないので、アプリケーション側でクライアントのIP検出をおこなう必要があります。そういったときにこのモジュールが有用です。 X-Forwarded-Forを見れば良いという話ではあるのですが、HTTPヘッダは簡単に偽装できますし、CDNを使っているなど多段になっているケースでも判別は地味に厄介です。ヘッダを付けてき

    GoのWebアプリでクライアントIPを検出するrealipモジュール | おそらくはそれさえも平凡な日々
  • Nginx+Luaで実装したリバースプロキシをDockerとGoで自動テストした - Qiita

    Nginxでリバースプロキシしつつlua-nginx-moduleを使ってリクエストやレスポンスを書き換える。図にするとこんな感じ。 client proxy app | 🍣 | 🐟 | |-------> 🐟 -------> 🐟 | 🍣 🍚 🐟 | |<--------|<----------| クライアントから寿司が送られてくるけどアプリケーションはネタだけ受け取りたいのでシャリはプロキシに抜いてもらう。 アプリケーションからのレスポンスにはさっきのネタが含まれているので、プロキシはシャリを戻してクライアントに返してあげる。 ローカルにOpenResty入れて適宜luaファイルを書き換えてcurlを叩くとかでもいいんだけど、絶対あとからだるくなってくるのでDockerでコンテナを立ち上げて、それに対してリクエスト投げるテストを書くことにした。 Dockerファイルはこち

    Nginx+Luaで実装したリバースプロキシをDockerとGoで自動テストした - Qiita
  • 1