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)
デモ環境
# 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
クライアントのホスト名と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