NETWORK ENGINEER BLOG

Tips and Reviews for Engineers

リバースプロキシ(Squid)簡易構築手順

リバースプロキシとは

リバースプロキシ(Reverse Proxy)とは、クライアントとサーバの通信の間に入って、サーバの応答を「代理(proxy)」しつつ通信を中継する機能、あるいはその役割を担うサーバのこと。Web システムのセキュリティ対策や性能向上、負荷分散、あるいはシステム構成の自由度向上などのためによく利用される。
出典:@IT リバースプロキシ(Reverse Proxy)

リーバスプロキシの主な特徴

セキュリティ

DMZ に設置したリバースプロキシを配置すれば、(重要なデータを扱っている)Web サーバー/アプリは直接インターネットに接する必要がない。
また、リバースプロキシ上で SSL や WAF(Web アプリケーションファイアウォール)などのセキュリティ対策をすれば、Web サーバ/アプリに直接手を加えることなく安全性を高められる。

負荷分散

同じ処理をする Web サーバー/アプリを複数用意しておき、リバースプロキシによってリクエストを分散させることができる。
クライアントからは単一サーバー構成と変わらず、大量のアクセスをさばけるシステムを構築できる。

リバプロお試し

テスト環境

f:id:FriendsNow:20200321210829p:plain

Web サーバ設定(CentOS 8.1)
> systemctl start httpd
> firewall-cmd --add-service=http --zone=public --permanent
> firewall-cmd --reload
> firewall-cmd --list-all | grep http
  services: cockpit dhcpv6-client http ssh
リバースプロキシ設定(CentOS 6.3)

squid.conf 設定

# 追記
http_access allow all

#コメントアウト
# http_access deny all

# 追記(転送先 Web サーバーの IP アドレスを指定)
http_port 80 defaultsite=10.1.23.253

# 最終行に追記(転送先 Web サーバーの IP アドレスを指定)
cache_peer 10.1.23.253 parent 80 0 no-query originserver

# 最終行に追記(メモリキャッシュサイズ)
cache_mem 256 MB

# 最終行に追記(ホスト名定義)
visible_hostname prox.srv.world

squid 再起動

/etc/rc.d/init.d/squid restart

クライアントからリバースプロキシへアクセス

クライアントから、リバースプロキシサーバーに Web アクセスすると、リバースプロキシサーバーが Web サーバーの代理で応答を行い、Web ページが参照可能となります。
f:id:FriendsNow:20200321210725p:plain

参考書籍

以上