• 自动草稿
  • 自动草稿

Nginx反向代理服务器

Nginx 反向代理服务器

反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量,将客户机请求转发给内部网络上的目标服务器;并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器与目标主机一起对外表现为一个服务器。

现在许多大型 web 网站都用到反向代理。除了可以防止外网对内网服务器的恶性攻击、缓存以减少服务器的压力和访问安全控制之外,还可以进行负载均衡,将用户请求分配给多个服务器。

Nginx 作为近年来较火的反向代理服务器,安装在目的主机端,主要用于转发客户机请求,后台有多个 http 服务器提供服务,nginx 的功能就是把请求转发给后面的服务器,决定哪台目标主机来处理当前请求。下面以反代 google.com 演示如何进行 Nginx 配置。
配置文件
根据自己的情况更换路径

vim /usr/local/nginx/conf/vhost/example.com.conf

HTTP 配置参考
根据自己的情况更换路径

server
{
listen 80;
server_name www.example.com;

if ($http_user_agent ~* (baiduspider|360spider|haosouspider|googlebot|soso|bing|sogou|yahoo|sohu-search|yodao|YoudaoBot|robozilla|msnbot|MJ12bot|NHN|Twiceler)) {
return 403;
}

location / {
sub_filter www.google.com www.example.com;
sub_filter_once off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Referer http://www.google.com;
proxy_set_header Host www.google.com;
proxy_pass http://www.google.com;
proxy_set_header Accept-Encoding “”;
}
}

HTTPS 配置参考

server
{
listen 80;
listen 443 ssl;
ssl on;
ssl_certificate /root/ssl.crt;
ssl_certificate_key /root/ssl.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
server_name www.example.com;
add_header Strict-Transport-Security “max-age=31536000”;

if ( $scheme = http ){
return 301 https://$server_name$request_uri;
}

if ($http_user_agent ~* (baiduspider|360spider|haosouspider|googlebot|soso|bing|sogou|yahoo|sohu-search|yodao|YoudaoBot|robozilla|msnbot|MJ12bot|NHN|Twiceler)) {
return 403;
}

location / {
sub_filter www.google.com www.example.com;
sub_filter_once off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Referer https://www.google.com;
proxy_set_header Host www.google.com;
proxy_pass https://www.google.com;
proxy_set_header Accept-Encoding “”;
}
}

参数解释

server_name 域名;

sub_filter 被反代的域名 域名;

proxy_set_header Referer http://被反代的域名;

proxy_set_header Host 被反代的域名;

proxy_pass http://被反代的域名;
ssl_certificate SSL 证书路径;
ssl_certificate_key SSL 证书密钥路径;
if ( $scheme = http ){
return 301 https://$server_name$request_uri;
}

#Nginx 强制 https 301 跳转
if ($http_user_agent ~* (baiduspider|360spider|haosouspider|googlebot|soso|bing|sogou|yahoo|sohu-search|yodao|YoudaoBot|robozilla|msnbot|MJ12bot|NHN|Twiceler)) {
return 403;
}

#屏蔽搜索引擎的收录

重启 Nginx

lnmp nginx restart

参考链接

另一种利用 Nginx 反向代理来简单镜像 HTTP(S)网站 的方法

http://blog.csdn.net/lishaojun0115/article/details/53200629


我爱我家 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 如需转载Nginx 反向代理服务器请注明我爱我家-www.525family.cc 所著!
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
切换注册

登录

忘记密码 ?

切换登录

注册