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

推薦する

HTMLのテーブルタグの基本学習チュートリアル

表ラベルの構成HTML 内の表は <table> タグで構成されており、ブラウザはタグを...

dockerでredis5.0.3をインストールする方法

1. 公式5.0.3イメージを取得する [root@localhost ~]# docker pul...

div+cssとウェブ標準ページの利点

div 要素は、HTML ドキュメント内のブロックレベル コンテンツの構造と背景を提供するために使用...

Linux で rsync を使用する方法

目次1. はじめに2. インストール3. 基本的な使い方3.1、-rパラメータ3.2、-aパラメータ...

IDEA が Docker を統合してリモート展開を実現するための手順

1. Dockerサーバーへのリモートアクセスを有効にするdocker が配置されているリモート サ...

CSS クロスフェード() を使用して半透明の背景画像効果を実現するサンプルコード

1. 要件の説明特定の要素については、背景background-imageを半透明にしたいが、テキス...

Ubuntu 18.04 で MySQL のインストール時にパスワードが要求されない場合の解決方法

Ubuntu 1804 への MySQL 5.7 のインストールについて詳しく紹介します。 MySQ...

Nginxはドメイン名のアクセス方法を定義しています

最近Nginxを構築しているのですが、ドメイン名でアクセスできません。 nginx 構成ファイル n...

Vue で $attrs と $listeners を使用するチュートリアル

目次導入例要約する導入$属性すべての親コンポーネントのプロパティを継承します (props を通じて...

MySQL 5.7.19 のインストールと設定方法のグラフィック チュートリアル (win10)

以下に記録されているように、WIN10システムにMYSQLをダウンロードしてインストールするための詳...

IDEA 構成の Tomcat 起動エラーの問題を解決する

異なるサーブレット パスを構成するときに、次の 2 つのエラーが発生しました。 java.lang....

ウェブページ制作でウェブフォントファイルにベクターアイコンを追加する方法

ご存知のとおり、コンピューターには 2 種類の画像があり、1 つはビットマップ、もう 1 つはベクタ...

MySQL 整合性制約の例の詳細な説明

この記事では、MySQL の整合性制約について説明します。ご参考までに、詳細は以下の通りです。メイン...

ウェブページ印刷細線表+ページ印刷究極の戦略

最近、クライアントのために印刷していたとき、ページのヘッダーを印刷するのではなく、表の内容だけを印刷...

ノードの対応するバージョンに関する簡単な説明 node-sass sass-loader

目次ノードのバージョンが一致しない、ノードをアップグレードまたはダウングレードするnvm を使用して...