简介
NGINX 是什么,NGINX是一款轻量级高性能的HTTP和反向代理服务器,同时也支持EMAIL(IMAP/POP3)代理.
NGINX 并发能力非常强大,和老牌的Apache相比,NGINX更加轻量方便.
反向代理
顾名思义,采用一个域名或IP,访问另外一个域名或IP的内容.
例如
使用 aaa.com 代理 bbb.com
用户访问aaa.com便可以直接访问bbb.com
作用
- 内容分发缓存
假设有个站在美国,大陆需要加速访问,那么可以使用东京,香港,上海,北京的机器对源机器进行反向代理,加速内容访问,以及分发,这个用途即是CDN
- 站群分发
假设有个站在美国,同时想建立10个左右类似的网站,但是内容只在一个地方维护,那么可以使用机器反代美国网站.
如何使用
反代最好采用编译模式,把相应的模块编译进行去.
- 去官网下NGINX软件包
下载后,首先安装依赖库.
1 2 |
CentOS: yum -y install pcre-devel openssl openssl-devel Debain: apt-get -y install openssl libssl-dev libpcre3 libpcre3-dev |
下载附加模块
模块地址 https://github.com/yaoweibin/ngx_http_substitutions_filter_module/
1 |
git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module.git |
进行配置
把正则替换模块编译进去
1 |
./configure ...YOUR SETTING... --add-module=...PATH.../ngx_http_substitutions_filter_module |
配置成功后进行编译安装
1 |
make && make install |
Google 反向代理配置
一般安装完成的路径在 /etc/nginx/ 下面, 可以把配置文件放在/etc/nginx/conf.d/ 里面
这是一个完整的可以反代Google的例子,直接复制,便可以使用.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
server { listen 80; server_name YOURDOMAIN; rewrite ^(.*)$ https:/YOUR DOMAIN$1 permanent; } server { listen 443 ssl; server_name YOUR DOMAIN; ssl on; ssl_certificate /etc/nginx/ssl/YOUR DOMAIN.crt; ssl_certificate_key /etc/nginx/ssl/YOUR DOMAIN.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { sub_filter_once off; sub_filter www.google.com YOUR DOMAIN; proxy_pass https://www.google.com; proxy_set_header Host www.google.com; proxy_set_header Referer https://www.google.com; proxy_set_header Accept-Encoding ""; proxy_set_header User-Agent $http_user_agent; proxy_set_header Accept-Language "zh-CN"; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; } } |
配置完成后重载配置,便可以使用了
1 |
nginx -s reload |
Comment