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

推薦する

Vueプロジェクトでよく使われる実践的なスキルのまとめ

目次序文1. マルチレベルのデータとイベントの配信には$attrsと$listenersを使用する2...

背景のグラデーションと自動フルスクリーンを実現するCSSコード

背景グラデーションと自動フルスクリーンに関する CSS の問題編集長は CSS の開発中に致命的な問...

初心者向け入門チュートリアル④:サブディレクトリのバインド方法

これが何を意味するのかを理解するには、まずサブディレクトリとは何かを知る必要があります。では、サブデ...

ウェブサイトのパフォーマンス: 画像とCookieの最適化、モバイルアプリケーションの最適化

前のセクションでは、コンテンツ、サーバー、JavaScript、CSS など、Web サイトのパフォ...

MySQL データベースの手動およびスケジュールされたバックアップ手順

目次手動バックアップタイマーバックアップ手動バックアップ1) cmd コンソール: mysqldum...

Linux で scp コマンドを使用してファイルをリモートでコピーする方法の詳細な説明

序文scp は secure copy の略です。scp は、Linux システムの ssh ログイ...

AWSサーバーリソースを無料で使用する方法を教えます

AWS - Amazon のクラウド コンピューティング サービス プラットフォーム以前、AWS の...

Vue はモバイル端末にマルチグリッド入力ボックスを実装

最近、同社は、下図に示すように、h5 ページ操作を完了するという要件を提示しました。 ネットで入手で...

jsシミュレーションでJingdongの詳細ページで画像を拡大する効果を実現

この記事では、Jingdongの詳細ページの画像の拡大を実現するためのjsの具体的なコードを紹介しま...

Nginxサービス500:内部サーバーエラーの原因の1つ

500 (内部サーバー エラー) サーバーでエラーが発生したため、要求を完了できませんでした。 50...

dockerコンテナがIP経由でホストマシンにアクセスできない問題を解決する方法の詳細な説明

問題の起源docker を使用する場合、残念ながら docker コンテナ内のホストのポート 80 ...

VMware12 で Ubuntu19.04 デスクトップ版をインストールする (インストール チュートリアル)

1. 実験の説明仮想マシンに、 Ubuntu 19.04オペレーティングシステムを手動でインストー...

Linux に MySQL 8.0.19 をインストールするための詳細な手順と問題解決方法

最近Tencent Cloudサーバーを購入し、環境を構築しました。このメモは、これまで MySQL...

Vueの最初のレンダリングのプロセス全体についての簡単な説明

目次1. Vueの初期化vue エントリ ファイルフルバージョンとランタイムバージョンの違い1.1、...