#Web教程# 为Nginx设置反向代理,隐藏服务器ip

vmvps-pptp-tutorialNginx是一个小而精悍的Web服务器,在Apache一统天下的时候,依然可以占据非常可观的市场份额。过去大家对于Nginx的主要看法在于其省资源(特别是内存)以及对静态文件的强大处理,不仅如此,Nginx的“反代”功能也让其在最小资源占用下实现间(dai)接(li)访问。那么,反向代理一般使用做什么用途呢?举个最正能量的例子,当网站域名受到DDOS攻击的时候,不配备防DDOS的服务器(或者ip)将是非常脆弱的,这时,如果我们能够不做数据迁移,而将网站域名绑定到带有流量清洗的ip下,那是多么的惬意啊。接着,问题来了,我们如何做到网站数据在A服务器,域名绑定在B服务器呢?解决的方案就是配置B服务器的Nginx,使之能够将用户的访问通过B服务器去访问A,而对于用户,虽然他们访问的是B服务器,而实际数据却是从A服务器来的,简而言之,这样做,我们也就“隐藏”了真正存储数据的A服务器。下面我们就来看具体的操作过程:

为Nginx设置反向代理

首先要明确:我们的网站数据在A服务器下,A服务器对外可通过Web访问(Web套件正常配置即可);将域名绑定在B服务器的ip上(A或CNAME)。因此,本文所涉及的Nginx的反代设置,也就是针对于B服务器。

1.安装、配置Nginx

以下是Nginx的配置示例,其中,加粗的地方需要根据自己的实际情况修改

server {
       listen         80;
       server_name   YOURDOMAIN.com;
       return         301 https://$server_name$request_uri;
}
server {
      listen 443 ssl;
      server_name YOURDOMAIN.com;

      ssl_certificate /home/ssl/cert.crt;
      ssl_certificate_key /home/ssl/cert.key;

      access_log   /home/logs/YOURDOMAIN.com.access.log;
      error_log /home/logs/YOURDOMAIN.com.error.log;

      location / {
            proxy_pass https://WEBSERVERIP/;
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-SSL on;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_max_temp_file_size 0;
            client_max_body_size 10m;
            client_body_buffer_size 128k;
            proxy_connect_timeout 90;
            proxy_send_timeout 90;
            proxy_read_timeout 90;
            proxy_buffer_size 4k;
            proxy_buffers 4 32k;
            proxy_busy_buffers_size 64k;
            proxy_temp_file_write_size 64k;

      }
}

2.配置iptables防火墙

iptables -F
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP

本文配置文件参考国外网友Xaitmi,中文内容为本人手打,欢迎高手路过批评指正。

猜你 喜欢

关于作者: 微魔

小微魔,大智慧!

多条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注