Fedora 27
Sponsored Link

リバースプロキシとしての設定2017/12/19

 
Squid のリバースプロキシとしての設定です。 Squid をリバースプロキシとして Web サーバーの前面にたてることで、処理性能の向上やサーバーのセキュリティ向上に役立ちます。
[1] 事前に SSL証明書を作成しておきます。自己署名の証明書を使用しない場合は作成不要です。
[root@www ~]#
cd /etc/pki/tls/certs

[root@www certs]#
openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/pki/tls/certs/squid.pem -out /etc/pki/tls/certs/squid.pem

Generating a 2048 bit RSA private key
......++++++
.......++++++
writing new private key to '/etc/pki/tls/certs/squid.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
JP
   
# 国

State or Province Name (full name) [Some-State]:
Hiroshima
   
# 地域(県)

Locality Name (eg, city) []:
Hiroshima
   
# 都市

Organization Name (eg, company) [Internet Widgits Pty Ltd]:
GTS
   
# 組織名

Organizational Unit Name (eg, section) []:
Server World
   
# 組織の部門名

Common Name (eg, YOUR name) []:
www.srv.world
   
# サーバーのFQDN

Email Address []:
xxx@srv.world
   
# 管理者アドレス
[root@www certs]#
chmod 400 squid.pem

[2] Squid の設定です。
自己署名ではない証明書を使用する場合は適切な証明書に置き換えてください。
Let's Encrypt を使用する場合は [fullchain.pem] を指定します。
[root@prox ~]#
vi /etc/squid/squid.conf
# 57行目:追記 ( httpアクセス全て許可 )

http_access allow all

# And finally deny all other access to this proxy
http_access deny all
# 63行目:以下のように変更 (defaultsite は転送先Webサーバを指定)

#
http_port 3128
http_port 80 accel defaultsite=www.srv.world
https_port 443 accel defaultsite=www.srv.world cert=/etc/pki/tls/certs/squid.pem key=/etc/pki/tls/certs/squid.pem
# 66行目:コメント解除

# 数字の意味 ⇒ [ディスクキャッシュサイズ] [第1階層のディレクトリ数] [第2階層のディレクトリ数]

cache_dir ufs /var/spool/squid 100 16 256
# 最終行に追記

cache_peer www.srv.world parent 80 0 no-query originserver
# メモリキャッシュサイズ

cache_mem 256 MB
# ホスト名定義

visible_hostname prox.srv.world
[root@prox ~]#
systemctl start squid

[root@prox ~]#
systemctl enable squid

[3] Firewalld を有効にしている場合は HTTP サービスの許可が必要です。
[root@dlp ~]#
firewall-cmd --add-service={http,https} --permanent

success
[root@dlp ~]#
firewall-cmd --reload

success
[4] LAN 内の DNS の設定や、必要であればルータの設定等を変更して、Squid のサーバーで HTTPS アクセスを受けるように設定変更します。 変更後、クライアントPC 等から Web ブラウザで Squid のサーバーへアクセスし、以下のように設定したバックエンドサーバーが応答することを確認してください。
関連コンテンツ