在使用景安VPS的过程中,由于域名未BA,导致绑定上去的域名,第二天就被天朝屏蔽掉了。所以只能使用独立IP地址进行访问,使用起来很是不方便,不过,最近在看《实战Nginx_取代Apache的高性能Web服务器》的时候,突然想起来,可以通过方向代理来实现通过域名的访问。然后便在国外的服务器上的Nginx上做了一个反向代理。
关于“反向代理”,百度百科给出了这样一个解释:
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
设置的详细过程如下:
这里我采用xy.yyzj.in为我要实现反向代理的域名。
首先,我们需要将xy.yyzj.in解析到我们国外或者其他地区的服务器上的IP地址;
然后,修改nginx配置文件nginx.conf,如果你的nginx编译时未配置配置文件的路径,默认在/usr/local/nginx/conf/nginx.conf,使用vi打开,或者下载到本地进行修改。然后添加如下一段代码到nginx中
- server {
- listen 80;
- server_name xy.yyzj.in; //注意将这里修改为你要反向代理的域名;
- location / {
- proxy_pass http://116.255.*.*/; //这里可以修改为你要反向代理的域名或者IP地址,注意带http://和/;
- proxy_redirect off;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
- }
位置如下截图:
我的经验是插入到server_name为localhost这个域之前,否则是无法成功的。添加保存之后。
然后执行:/usr/local/nginx/sbin/nginx -t 检查配置是否正常
如果正常则出现:
- #the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
- configuration file /usr/local/nginx/conf/nginx.conf test is successful
否则按错误提示修改配置,错误提示会精确到哪一行的。检查修改即可。
最后,执行如下命令使得配置生效。
- kill -HUP ’cat /usr/local/nginx/logs/nginx.pid’
这样,如果域名也解析生效的话,应该就可以通过域名来访问到我们反向代理的地址。
关于反向代理还有很多用途,以后会经常钻研一下!
利用Nginx实现反向代理设置