CentOS7に基づいてNginxフォワードプロキシを構成する

Nginxは、軽量でメモリオーバーヘッドが少なく、キャッシングのサポート、リバースプロキシのサポート、[ロードバランシング](https://cloud.tencent.com/product/clb?from=10680)、および電子メールサービスで知られています。あまり知られていないのは、シンプルで使いやすいフォワードプロキシサーバーとしても使用できることです。この記事では、このフォワードプロキシ機能について簡単に説明し、参考のためにデモンストレーションを行います。

Nginxのインストールについては、を参照してください。
[ CentOS 7でNginxをyumモードでインストール](http://blog.csdn.net/leshami/article/details/78323283)[Nginxの概要と日常の管理](http://blog.csdn.net/leshami/article/details/51373846)[NginxはIP、ポート、ドメイン名に基づいて仮想ホストを構成します]( http://blog.csdn.net/leshami/article/details/51396811)

1つは、nginxフォワードプロキシサーバー構成を構成する##

デモ環境
# more /etc/redhat-release 
CentOS Linux release 7.2.1511(Core) 

現在のホスト名とIP
# hostname
centos7-router

# ip addr|grep -inet|grep global
9: inet 172.24.8.254/24 brd 172.24.8.255 scope global eno16777728
15: inet 192.168.1.175/24 brd 192.168.1.255 scope global dynamic eno33554960

現在のホストのdns構成
# more /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.1.1

nginxバージョン
# nginx -v
nginx version: nginx/1.12.2

Nginxフォワードプロキシ構成
# vim /etc/nginx/conf.d/proxy.conf
server {
 listen 8080;            ##プロキシサービスを提供するためにデフォルト以外のポートを指定する
 server_name localhost;
 resolver 192.168.1.1;    ##DNSサーバーIPを指定します

  location /{      
   proxy_pass $scheme://$host$request_uri;
   proxy_set_header Host $http_host;

   ## proxy_pass:プロキシサーバーのプロトコルとアドレス、および場所をマップするオプションのURIを設定します。プロトコルはhttpまたはhttpsを指定できます
   ## proxy_set_ヘッダー:権限を使用してフィールドを再定義するか、追加の要求ヘッダーをプロキシサーバーに渡します

   proxy_buffers 256 4k;          ## Author : Leshami
   proxy_max_temp_file_size 0;    ## Blog  : http://blog.csdn.net/leshami

   ## proxy_buffers:単一接続のプロキシサーバーから応答を読み取るためのバッファー数とバッファーサイズを設定します
   ## proxy_max_temp_file_サイズ:一時ファイルへの応答のバッファリングを無効にします

   proxy_connect_timeout 30;        ##エージェント接続タイムアウト

   proxy_cache_valid 200302 10m;  ##さまざまな応答コードのキャッシュ時間を設定します
   proxy_cache_valid 301 1h;
   proxy_cache_valid any 1m;}}

# systemctl reload nginx.service
# ss -nltp|grep nginx
LISTEN 0128*:8080*:* users:(("nginx",pid=110780,fd=10),("nginx",pid=19774,fd=10))
LISTEN 0128*:80*:* users:(("nginx",pid=110780,fd=6),("nginx",pid=19774,fd=6))

ファイアウォール構成
# firewall-cmd --add-port=8080/tcp --permanent
# firewall-cmd --reload

2、クライアント構成##

クライアントのホスト名とIP
 # hostname
 centos7-web.example.com
 # ip addr|grep inet|grep global
 inet 172.24.8.128/24 brd 172.24.8.255 scope global eno16777728

現在の環境変数httpを一時的に設定します_proxy
 # export http_proxy=http://172.24.8.254:8080

 # curl -I http://www.baidu.com
 HTTP/1.1200 OK
 Server: nginx/1.12.2
 Date: Tue,24 Oct 201714:59:44 GMT
 Content-Type: text/html
 Content-Length:277
 Connection: keep-alive
 Last-Modified: Mon,13 Jun 201602:50:26 GMT
 ETag:"575e1f72-115"
 Cache-Control:private, no-cache, no-store, proxy-revalidate, no-transform
 Pragma: no-cache
 Accept-Ranges: bytes

httpをクリア_proxy
 # unset http_proxy

wgetがプロキシパラメータを直接使用してネットワークにアクセスすることを示します
 # wget -e "http_proxy=http://172.24.8.254:8080" www.baidu.com
 - - 2017- 10- 2423:03:48- - http://www.baidu.com/
 Connecting to 172.24.8.254:8080... connected.
 Proxy request sent, awaiting response...200 OK
 Length:2381(2.3K)[text/html]
 Saving to: ‘index.html’

curlがプロキシパラメータを直接使用してネットワークにアクセスすることを示します
 # curl -x http://172.24.8.254:8080-I http://www.baidu.com
 HTTP/1.1200 OK
 Server: nginx/1.12.2
 Date: Tue,24 Oct 201715:07:39 GMT
 Content-Type: text/html
 Content-Length:277
 Connection: keep-alive
 Last-Modified: Mon,13 Jun 201602:50:26 GMT
 ETag:"575e1f72-115"
 Cache-Control:private, no-cache, no-store, proxy-revalidate, no-transform
 Pragma: no-cache
 Accept-Ranges: bytes

ユーザー名とパスワードが必要な場合は、
 curl -x "http://user:pwd@host:port" www.baidu.com

httpを構成する_プロキシとftp_yumプロキシ構成などのアプリケーションへのプロキシ
/etc/yum.confにプロキシを追加=proxy_addr:port。

 # unset http_proxy
 # cp /etc/yum.conf /etc/yum.conf.bk
 # echo "proxy=http://172.24.8.254:8080">>/etc/yum.conf

 # tail -1/etc/yum.conf
 proxy=http://172.24.8.254:8080

 # vim /etc/yum.repo.d/nginx.repo
 [ nginx]
 name=nginx repo
 baseurl=http://nginx.org/packages/centos/7/$basearch/
 gpgcheck=0
 enabled=1

 # yum clean all
 # yum repolist
 Loaded plugins: fastestmirror, langpacks
 nginx |2.9 kB 00:00:00
 nginx/x86_64/primary_db |31 kB 00:00:01
 Determining fastest mirrors
 repo id repo name status
 nginx/x86_64 nginx repo 90
 repolist:90[root@centos7-web yum.repos.d]# yum makecache
 Loaded plugins: fastestmirror, langpacks
 nginx |2.9 kB 00:00:00(1/2): nginx/x86_64/other_db |16 kB 00:00:00(2/2): nginx/x86_64/filelists_db |39 kB 00:00:01
 Loading mirror speeds from cached hostfile
 Metadata Cache Created

グローバル構成
 # cp /etc/skel/.bash_profile /etc/skel/.bash_profile.bk
 # vim /etc/skel/.bash_profile
 export http_proxy=http://172.24.8.254:8080export https_proxy=http://172.24.8.254:8080

 # source /etc/skel/.bash_profile
 # env |grep http
 http_proxy=http://172.24.8.254:8080
 https_proxy=http://172.24.8.254:8080

Recommended Posts

CentOS7に基づいてNginxフォワードプロキシを構成する
CentOS7に基づいてNginxリバースプロキシを構成する
CentOS7に基づいてNginxロードバランシングを構成する
CentOS7に基づいて自動的に起動するようにNginxを構成します
CentOS6でOcservを構成する
Centos 7(仮想ホストを含む)に基づいてNginxを構築する
CentOS7でスワップスペースを構成する
CentOS7に基づくZabbix3.4をインストールします
CentOS7にNginxサーバーをインストールします
一般的なLinux操作(centos7に基づく)
CentOSでrsyslogログクライアントを構成する
CentOS8にNginxをインストールする方法
dockerに基づいてElasticsearch6.2.4(centos)を構築する
LinuxでNginx環境を構築する(CentOS)
centos7でpython3環境を構成し、
CentOSに基づいてDiscuzフォーラムを構築する
CentOSに基づいてWeChatアップルトサービスを構築する
CentOSに基づいてWeChatアップルトサービスを構築する
UbuntuシステムでNginxGitサーバーを構成する
Dockerをデプロイし、CentOSでNginxを構成します
Centos7.3はnginxをインストールします
CentOS7にElasticsearchをインストールして構成する方法
クラウドサーバーはCentOSに基づいてDiscuzフォーラムを構築します
CentOS8にVNCをインストールして構成する方法
CentOS8にRedisをインストールして構成する方法
Centos7はNginxをインストールします
CentOS6にphpMyAdminをインストールして構成する方法
CentOS8にOwncloudをインストールして構成する方法
Centos7はJDKを構成します
centos8にnginxをインストールするための詳細なチュートリアル(グラフィック)
CentOS8にRedmineをインストールして構成する方法
CentOS8でVsftpdを使用してFTPサーバーを構成する方法
Ubuntu18.04に基づいて固定IPを構成する方法
CentOS8にNFSサーバーをインストールして構成する方法
CentOS8でVsftpdを使用してFTPサーバーを構成する方法
Let'sEncryptを使用してCentOS8でNginxを保護する方法
CentOS MONOnginxを実行しています
Centos7にDockerをインストールする
Centos7.4はLNMPをインストールします
centos7でk8s1.9.9をビルドする
Centos7にJavaをインストールする
centos7でのXfs構成
Nodejsはcentos7にインストールされます
CentOS8にFFmpegをインストールします
CentOS7にRabbitMQをインストールします
CentosにNode.jsをインストールします
Mavenはcentos7にインストールします
CentOS7にMongoDBをインストールします
ジェンキンスはセントスに基づいて構築されています
CentOS8にSurelogをインストールする
centos6.8でランプを構成する
Centos7はIPアドレスを構成します
centos7にvuepressをデプロイする
centos7へのOpenjdkのインストール
Jenkinsをcentos7にインストールします
CentOS7でRapidSVNを使用する
Centos7はnodejs環境を構成します
セントスにRabbitMQをインストールする
CentOS7にRabbitMQをインストールします
centos6.5にDockerをインストールします
セントスにオラクルをインストールする