前几天遇到一个比较难搞的CDN,想了半天还是做了反代。
1、 首先安装Nginx(随便怎么装都行)
sudo apt-get install nginx
2、 在/etc/nginx/nginx.conf中的http{}部分include一个vhost的conf,例如
http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; gzip on; gzip_disable "msie6"; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; include /etc/nginx/yoursite.conf; #在最后添加一行 }
3、 vhosts.conf的内容可以这样写
## Basic reverse proxy server ## ## backend for yoursite ## upstream apachephp { server 1.2.3.4; #源站IP } ## Start yoursite ## server { listen 80; #监听端口 server_name yoursite.com; #绑定域名 root html; index index.php; ## send request back to source ## location / { proxy_pass http://yoursite.com; #回源域名 稍后会讲一个小技巧 #Proxy Settings 按照实际需求修改以下参数 proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_max_temp_file_size 0; 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; } } ## End yoursite ##
4、 重载Nginx
nginx -s reload
想要完全隐藏源站IP,只做这些事是不够的,这里有一个技巧。
关键就在proxy_pass的源站URL设置
一定不要使用DNS记录解析,而是在反代上使用hosts
方法简单易行,只要在/etc/hosts加一行就行了
1.2.3.4 yoursite.com
厉害哦,大神
有一个小地方可以改进一下。
debian 系的 nginx 默认对各种附加站点配置文件的处理方式是加载 `sites-enabled` 文件夹(文中给出的内容里也包含了:
“`
include /etc/nginx/sites-enabled/*;
“`
而其中的配置文件均为符号链接自 `/etc/nginx/sites-available` 文件夹。
这种文件管理方式是 debian 系为了模拟 apache 行为留下的(其实 RH 系的 nginx 是没有这种文件夹的默认配置的),但是在已经提供的前提下,将服务器的配置文件都放在一起管理要比直接在 `/etc/nginx/` 下放各种单独站点的配置文件确实要更好一些,并且在启用和禁用特定站点配置时也更方便,只需要删除或重新创建符号链接即可,不用再去编辑任何文件。
……原来不支持 Markdown 么……
以后会加的(确信 ( ̄▽ ̄”)),因为这个blog部署在容器上,安装插件比较麻烦,下次打概的时候一并加上,诶嘿~
嗯嗯,在debian系实际部署中我的确是习惯性将conf放置到 /etc/nginx/sites-available 目录,此处是保留了引用原文中原作者的配置方法,RH系就不要吐槽了,conf.d 什么鬼嘛。-________-”