Squid を使用して http および https 用のプロキシ サーバーを構築する方法

Squid を使用して http および https 用のプロキシ サーバーを構築する方法

nginx を導入した際に、フォワードプロキシの設定も nginx を使っていました。しかし、https に対応したい場合、nginx をそのまま使うのは困難です。この分野に特化した squid を使う方がはるかに簡単です。この記事は、http と https を実装するために Centos7 に squid3.5 をインストールして構成する手順を記録するために使用されます。

マシン構成

[root@liumiaocn ~]# uname -a
Linux mail.163.com 3.10.0-514.el7.x86_64 #1 SMP 火曜 11月22日 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@liumiaocn ~]# 
[root@liumiaocn ~]# cat /etc/redhat-release 
CentOS Linux リリース 7.3.1611 (コア) 
[root@liumiaocn ~]#

Squidをインストールする

インストールコマンド: yum install squid

バージョンを確認

バージョンの確認: rpm -qa |grep squid

[root@liumiaocn ~]# rpm -qa |grep squid
squid 移行スクリプト 3.5.20-12.el7.x86_64
イカ-3.5.20-12.el7.x86_64
[root@liumiaocn ~]#

ip_forwardを確認

ip_forward は 1 に設定する必要があります。これは Centos ではすでにデフォルトで設定されています。詳細は次のとおりです。

[root@liumiaocn ~]# sysctl -a |grep -w ip_forward
ネット.ipv4.ip_forward = 1
[root@liumiaocn ~]#

設定ファイルを変更する

修正前

[root@liumiaocn ~]# grep -n 'http_access deny all' /etc/squid/squid.conf
56:http_access すべて拒否
[root@liumiaocn ~]#

[root@liumiaocn ~]# grep -n http /etc/squid/squid.conf |grep -w all
56:http_access すべて許可
[root@liumiaocn ~]#

イカを始める

systemctl squidを起動する

問題 1: libssl エラー

Squidを起動すると次のエラーが表示されます

squid: relocation error: squid: symbol SSL_set_alpn_protos, version libssl.so.10 not defined in file libssl.so.10 with link time reference

理由: opensslがインストールされていません

対応する方法: yum install openssl

インストール後、squid を起動します。

[root@liumiaocn ~]# systemctl squidを起動します
[root@liumiaocn ~]# systemctl ステータス squid
● squid.service – Squid キャッシュプロキシ
  ロード済み: ロード済み (/usr/lib/systemd/system/squid.service; 無効; ベンダープリセット: 無効)
  アクティブ: 2018-06-05 火曜日 20:07:56 CST からアクティブ (実行中)、8 秒前
 プロセス: 28548 ExecStart=/usr/sbin/squid $SQUID_OPTS -f $SQUID_CONF (コード=終了、ステータス=0/成功)
 プロセス: 28540 ExecStartPre=/usr/libexec/squid/cache_swap.sh (コード=終了、ステータス=0/成功)
 メインPID: 28551 (イカ)
  メモリ: 14.3M
  Cグループ: /system.slice/squid.service
      ├─28551 /usr/sbin/squid -f /etc/squid/squid.conf
      ├─28553 (squid-1) -f /etc/squid/squid.conf
      └─28557 (ログファイルデーモン) /var/log/squid/access.log
6月5日 20:07:56 liumiaocn systemd[1]: Squidキャッシュプロキシを起動しています...
6月5日 20:07:56 liumiaocn squid[28551]: イカの親: 1人の子供を開始します
6月5日 20:07:56 liumiaocn squid[28551]: Squid親: (squid-1) プロセス28553が開始されました
6月5日 20:07:56 liumiaocn systemd[1]: Squidキャッシュプロキシを開始しました。
[root@liumiaocn ~]#

問題2: ドメイン名を解決できない

現時点ではドメイン名は使用できず、IPアドレスのみでアクセスできることが判明しています。

理由: DNS が設定されていません。Squid 設定ファイルに 8.8.8.8 と 8.8.4.4 を追加してください。

[root@liumiaocn ~]# grep ネームサーバー /etc/squid/squid.conf
dns_ネームサーバー 8.8.8.8 8.8.4.4
[root@liumiaocn ~]# 
[root@liumiaocn ~]# systemctl squidを再起動します
[root@liumiaocn ~]#

クライアントアクセス

Squid のデフォルト ポートは 3128 ですが、ここでは変更しません。次の方法を使用してクライアントからアクセスできます。

HTTP メソッド

エクスポート http_proxy=http://192.168.163.117:3128
カール http://www.baidu.com

HTTPS方式

エクスポート https_proxy=http://192.168.163.117:3128
カール https://www.baidu.com

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • Linux で Squid リバース プロキシを使用して CDN キャッシュ サーバーを構成する方法
  • 大規模ウェブサイトアーキテクチャの実験環境の構築(Squid キャッシュサーバー)
  • Squid3 キャッシュ サーバーのコンパイルとインストール、および高ヒット率構成の例
  • CentOS で Squid を使用して CDN サーバーを設定する方法
  • Varnish、Squid、Apache、Nginxの中からより優れたキャッシュサーバーを選択する
  • Linux での Squid プロキシ サーバーの設定と保​​守に関する経験の共有
  • SSH+Squid プロキシ サーバー用の無料インターネット アクセス チャネルを簡単に設定する方法
  • Squid を使用して Windows でプロキシ サーバーを設定する
  • LinuxでのSquid設定の詳細な説明 Squidプロキシサーバー設定
  • Squidをプロキシサーバーとして使用する方法

<<:  Linux 構成で MySQL データベースへのリモート接続が失敗する問題の解決方法

>>:  Vueはデータを初期状態にリセットします

推薦する

データ構造 - ツリー (III): 多方向検索ツリー B ツリー、B+ ツリー

多方向探索ツリー完全二分木の高さ: O(log2N)、ここで2は対数完全なM方向探索木の高さ: O(...

Webリクエストと処理のTomcatソースコード分析

目次序文1. エンドポイント2. 接続ハンドラ3. コヨーテ4. コンテナ責任チェーンパターン序文T...

Linux 上の Vim で色とテーマを変更する方法

Vim は Linux でよく使用されるテキスト エディターです。 Vim は、Sublime や ...

Docker+K8S+GitLab/SVN+Jenkins+Harbor をベースにした継続的インテグレーション配信環境の構築に関する詳細なチュートリアル

目次環境設定の概要1.K8Sとは何ですか? 2. K8S を使用する理由3. K8S を使用する利点...

Node はあいまい検索用の検索ボックスを実装します

この記事の例では、検索ボックスでファジークエリを実装するためのNodeの具体的なコードを参考までに共...

CSSを使用して3Dフォトウォール効果を作成する

CSS を使用して 3D フォト ウォールを作成します。具体的なコードは次のとおりです。 <!...

MySQL 最適化 query_cache_limit パラメータの説明

クエリキャッシュ制限query_cache_limit は、単一のクエリで使用できるバッファ サイズ...

MySQLへの外部ネットワークアクセスを許可し、MySQLアカウントのパスワードを変更する方法

mysqlのrootアカウント、普段はlocalhostか127.0.0.1で接続しています。会社の...

jQueryは、マウスをドラッグしてdivの位置とサイズを変更する方法を実装しています。

Windows フォームと同様の効果を得るには、中央をドラッグして div の位置を変更し、端をド...

Mysql5.7 のグループ連結関数を使用するときにデータが切り捨てられる問題に対する完璧な解決策

一昨日、本番環境でGROUP_CONCAT関数を使用して選択したデータが切り捨てられ、最大長が102...

jQueryは検証コード送信のコントロールボタンを無効にする機能を実装します

必要な効果: 確認コードを送信するためにクリックした後、ボタンは無効になり、5 秒後に無効解除されま...

LinuxにPython 3.6をインストールして落とし穴を避ける

Python 3のインストール1. 依存環境をインストールするPython3 はインストール プロセ...

Linux での MySQL データベースのアンインストール

Linux で MySQL データベースをアンインストールするにはどうすればいいですか? 以下では、...

Nginx の負荷分散アルゴリズムとフェイルオーバー分析

概要Nginx ロード バランシングは、アップストリーム サーバー (実際のビジネス ロジックによっ...

マウスを動かしたときに画像のズーム効果とゆっくりとした遷移​​効果を実現するCSSのサンプルコード

transform:scale()比例したズームインまたはズームアウトを実現できます。 transi...