エンジニア的な技術的なブログ

webエンジニアの開発の知見を書きます。PHP、javascript、postgres、mysql、あと多少のインフラ周りとか。

プロキシサーバの設定(squid)

とあるデータセンターに申請するIPアドレスを1本にしないといけなくなった。

複数台あるサーバからアクセスする必要があるんだけど、そこはプロキシを経由させて解決しよう!
っていうアルアルな手段

でも初めてプロキシサーバの構築ってやるから記念にメモ

使ったのはsquid
今回はコンテンツのキャッシュとかしないけど、ネット上にドキュメントが多いから採用。
nginxとかでもできるらしい。


環境
linux centOS7.x


手順
1.yumでインストール
2. squid.confを書き換え
3.初期化
4. squidを起動
5. firewallに穴あける


まずはインストールする
yum install squid


次はconfの設定
vi /etc/squid/squid.conf


ローカルネットワークからだけのアクセスなのか、外部アクセスなのかによっても設定は変わる
外部からアクセスするなら、設定の追記が必要だよ

ex) 以下squid.confの中身

                                                                                                                                                                  • -

acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines

acl hld src xxx.xxx.xxx.xxx <= ここに通したい外部アクセス元のIPを入れる

~省略


#許可を追加する。ほかのhttp_accessよりも前のほうに書いておくと確実かも。
http_access allow hld


#listenポートの指定。squidのデフォは下記らしい
http_port 3128

                                                                                                                                                                  • -


これはテスト用に外部からのアクセス許可しているけど、本当は踏み台にされて危ないのでやめようね。
やるならちゃんと設定しようね。


squidを初期化(何をしているのかはよく分かってない。。。)
squid -z



squidを起動
systemctl start squid


centOS7だと、起動失敗してもエラー出ません!
プロセスみて確認しよう
ps aux | grep squid



デーモンがいればOK


あとはfirewallなんだけど、今回はフュージョンクラウドを使うことになったので、ファイヤーウォールグループというやつを設定。
3128に穴を開ける

この辺はawsと同じ!




これでまたスキル幅がひとつ広がったよ。