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はデータを初期状態にリセットします

推薦する

MySQLデータベースを操作するためのコマンドラインツールmycliの簡単な紹介

GitHub にはあらゆる種類の魔法のツールがあります。今日、私はデータベースを操作するためのコマン...

FileZilla_Server:425 データ接続を開けない問題を解決する方法

FileZilla Serverをサーバーにインストールすると、425データ接続を開けない問題が発生...

Docker で MySQL マスター スレーブ レプリケーションを実装するためのサンプル コード

目次1. 概要1. 原則2. 実装3. スレーブインスタンスを作成する4. マスタースレーブ構成要約...

MySQL の完全なデータベース バックアップからデータベースとテーブルを復元する方法

公式の MySQL ダンプ ツールで、特定のデータベースのみを復元するにはどうすればよいですか?完全...

JavaScript フロー制御 (ループ)

目次1. forループ2. 二重の for ループ3. whileループ4. dowhileループ5...

MySQLアラームの詳細な分析と処理

最近、あるサービスにアラームが発生し、耐えられなくなっています。アラーム情報は次のとおりです。メトリ...

Vue3 での provide と injection の使用

1. provideとinjectの説明Provide と Inject により、ネストされたコンポ...

MySQL 5.7.29 + Win64 解凍バージョンのインストールチュートリアル(画像とテキスト付き)

公式サイトをダウンロード自分に合ったバージョンを選択してダウンロードしてください。 ダウンロードをク...

使用したコマンドを表示するLinuxコマンドメソッドの概要

システムでは多くのコマンドが使用されていますが、使用したコマンドをどのように確認すればよいでしょうか...

Vueアイコンセレクターのサンプルコード

出典: http://www.ruoyi.vip/ 'vue' から Vue をイン...

フレックスレイアウトは、上下固定、中間スライドのレイアウトモードを実現します。

この記事では、主に、上下固定と中スライドレイアウトを実現するためのフレックスレイアウトのレイアウト方...

数ステップでサイバーパンク2077風の視覚効果を実現するCSS

背景記事を始める前に、賽博朋克とは何か、賽博朋克2077とは何かを簡単に理解しましょう。サイバーパン...

MySQLの連結関数CONCATの使い方の詳しい説明

前回の記事では、MySQL の置換関数 (Replace) とセグメンテーション関数 (SubStr...

Debian Dockerコンテナにcrontabスケジュールタスクを追加する

現在、DockerイメージのほとんどはDebianベースです # cat /etc/issue De...

MySQL データ アーカイブ ツール mysql_archiver の詳細な説明

目次I. 概要2. pt-archiverの主なパラメータ3. mysql_archiverのインス...