全球主机交流论坛

标题: 个人网站部署策略 - 反代服务器架设超简易教程 [打印本页]

作者: orlog    时间: 2017-12-20 11:29
标题: 个人网站部署策略 - 反代服务器架设超简易教程
原文连接:http://gaoit.de/a/2

很多站长可能都有同样的烦恼,直连中国线路好的服务器价格昂贵或者不稳定,而物美价廉又稳定的服务器呢线路不好,访问速度慢,两者很难兼得或者成本很高。

这个难题其实用一个很简单的部署策略就可以解决,就是加一层前端反代。用线路好的小规格vps,反代线路差但是稳定强健的后端服务器。

具体操作如下:

后端先架好你的网站,就是该装的php mysql apache啥的,都有很多一键包,这里不多说了。

找一个线路好的小vps做前端,修改网站域名的a记录到这个前端。然后前端简单装一个debian就行,进ssh后运行命令 apt-get install -y nginx
(这一步如果出错就先apt-get update 更新一下软件包)
nignx装好后 rm -rf /etc/nginx/nginx.conf
然后vi /etc/nginx/nginx.conf
进入vi编辑器之后按一下i进入插入模式,粘贴入以下内容

user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
        worker_connections 768;
}
http {
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        server_tokens off;
        include /etc/nginx/mime.types;
        default_type application/octet-stream;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;
        proxy_connect_timeout 5;
        proxy_read_timeout 60;
        proxy_send_timeout  5;
        proxy_buffer_size 16k;
        proxy_buffers  4 64k;
        proxy_busy_buffers_size 128k;
        gzip on;
        gzip_disable "msie6";
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.0;
        gzip_comp_level 2;
        gzip_types       text/plain application/x-javascript text/css application/xml;
        gzip_vary on;
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}

然后 :wq回车 保存退出,这就完成了nginx的反代设置
接下来就可以建立一个反代网站了:

vi /etc/nginx/sites-enabled/mjj.party
进入编辑器后按i并粘贴入以下内容:

server {
        listen 80;
        server_name mjj.party www.mjj.party;
        index index.html index.htm index.php;
        access_log off;
        location / {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Referer http://mjj.party;
                proxy_set_header Host $host;
                proxy_set_header Cookie $http_cookie;
                proxy_pass http://1.1.1.1;
        }
}

(其中mjj.party替换成你的网站域名, 1.1.1.1换成你的后端服务器ip)
然后 :wq回车 保存退出,service nginx restart 重启nginx
结束

应用这个策略,还可以灵活的应付ddos攻击,你只要注意保护后端ip不要泄露,攻击者只能打你的前端,而你要做的只是适时的换一个前端就行了。

下一篇文章将更新前端的https部署

作者: orlog    时间: 2017-12-20 11:31
如果是要镜像别人的网站,那么第二步的设置是这样:

server {
        listen 80;
        server_name mjj.party www.mjj.party;
        index index.html index.htm index.php;
        access_log off;
        location / {
                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.hostlic.com;
                proxy_set_header Host www.91ai.net;
                proxy_set_header Cookie $http_cookie;
                proxy_pass http://23.225.155.85;
                proxy_redirect off;
                subs_filter_types text/html text/css text/xml;
                subs_filter www.91ai.net mjj.party;
                subs_filter 91ai.net mjj.party;
        }
}

作者: 偷偷的注册一个    时间: 2017-12-20 11:35
留名,我爱你
作者: jarvan    时间: 2017-12-20 11:37
为啥我用的宝塔面板 的反代理  有图比 ,毫无效果。
作者: orlog    时间: 2017-12-20 11:38
jarvan 发表于 2017-12-20 11:37
为啥我用的宝塔面板 的反代理  有图比 ,毫无效果。

不清楚了。。。没用过宝塔
我的教程很简单哦 比你装个宝塔都简单吧
作者: cooe    时间: 2017-12-20 11:39
Mark备用!
作者: 冷雨@夜    时间: 2017-12-20 11:40
jarvan 发表于 2017-12-20 11:37
为啥我用的宝塔面板 的反代理  有图比 ,毫无效果。

有图比你也想反代?骚年太年轻了
作者: hxuf    时间: 2017-12-20 11:40
jarvan 发表于 2017-12-20 11:37
为啥我用的宝塔面板 的反代理  有图比 ,毫无效果。

有图壁的网址太多了。不是简单就能反代的。
作者: 左手写爱    时间: 2017-12-20 11:42
如果绑定自己的二级域名,解析到服务器IP就可以了,不用再设置其他的了?
作者: yukisan    时间: 2017-12-20 11:42
强势插入,收藏了
作者: 吖91243756    时间: 2017-12-20 11:43
大佬我爱你
作者: orlog    时间: 2017-12-20 11:45
左手写爱 发表于 2017-12-20 11:42
如果绑定自己的二级域名,解析到服务器IP就可以了,不用再设置其他的了? ...

只要把域名解析到前端就行了,后端服务器不需要再做额外设置
作者: 幸福的丶开始    时间: 2017-12-20 11:48
不错 不错 简单快捷
作者: 传奇1900    时间: 2017-12-20 11:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: xiaobei206    时间: 2017-12-20 11:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: c21xdx    时间: 2017-12-20 11:51
域名带https也可以吗?比如用cloudflare的https,然后a记录到这台小vps
作者: orlog    时间: 2017-12-20 11:52
c21xdx 发表于 2017-12-20 11:51
域名带https也可以吗?比如用cloudflare的https,然后a记录到这台小vps

可以的 我也常这样干
                          
                                    
作者: c21xdx    时间: 2017-12-20 11:58
orlog 发表于 2017-12-20 11:52
可以的 我也常这样干

那域名配置文件里的监听端口要改成443?
作者: orlog    时间: 2017-12-20 12:00
c21xdx 发表于 2017-12-20 11:58
那域名配置文件里的监听端口要改成443?

cf不用啊 默认它是抓你源网站的80端口的
作者: redalfa    时间: 2017-12-20 12:01
厉害了 后排围观   .
作者: 245097074    时间: 2017-12-20 12:03
瓜子奉上
作者: 金盾    时间: 2017-12-20 12:04

厉害了  Mark备用
作者: 245097074    时间: 2017-12-20 12:04
大佬博客是同理搭建的吗?源站在什么地方?
作者: orlog    时间: 2017-12-20 12:05
245097074 发表于 2017-12-20 12:04
大佬博客是同理搭建的吗?源站在什么地方?

是的 前端是套路云香港,源站ramnode洛杉鸡
作者: 你爹临死前    时间: 2017-12-20 12:13
如果网站用国内的,域名解析到国外小内存vps做跳转,访问速度是不是很快?访客记住域名就好了
作者: 尘封之泪    时间: 2017-12-20 12:25
不错,我已经收藏了。
作者: 南琴浪    时间: 2017-12-20 12:32
1.nginx 的配置都不是无脑加的,你这样直接给模板最终只会坑害新人,nginx 就是需要一项项学习的。 2. loc 大概没多少人需要看这种教程,就算有新手需要看,也应该让他们去问谷歌,而不是培养他们伸手。
作者: zhongziso    时间: 2017-12-20 12:46
hxuf 发表于 2017-12-20 11:40
有图壁的网址太多了。不是简单就能反代的。

有图壁只能用sniproxy
作者: zytlhc    时间: 2017-12-20 12:49
简易cdn?
作者: 地也就这么小    时间: 2017-12-20 12:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: mslxd    时间: 2017-12-20 12:53
不错,不错,,,,是一个好思路
作者: orlog    时间: 2017-12-20 12:58
南琴浪 发表于 2017-12-20 12:32
1.nginx 的配置都不是无脑加的,你这样直接给模板最终只会坑害新人,nginx 就是需要一项项学习的。 2. loc  ...

你想敦促新人学技术的想法不错,不过毕竟我们都是在使用别人的各种轮子
你我也不可能自己写一个debian之类操作系统。。。
某个层面上我们都是伸手党吧,但只要把我们专注的那个层面做好就行了
作者: chable    时间: 2017-12-20 13:01
一直学不来反代。
作者: orlog    时间: 2017-12-20 13:02
你爹临死前 发表于 2017-12-20 12:13
如果网站用国内的,域名解析到国外小内存vps做跳转,访问速度是不是很快?访客记住域名就好了 ...

前端服务器要从后端抓取内容 这一段的速度也要考虑在内的
                    
作者: 偷偷的注册一个    时间: 2017-12-20 13:04
那如果我后端有几个网站,怎么饭袋?
作者: 莫拉格    时间: 2017-12-20 13:06
后端加了SSL  前端我再买个新域名A记录到小鸡,那NGINX怎么配置呢
作者: orlog    时间: 2017-12-20 13:07
偷偷的注册一个 发表于 2017-12-20 13:04
那如果我后端有几个网站,怎么饭袋?

在/etc/nginx/sites-enabled目录下继续照样子添加配置文件就行了,一个网站一个配置文件
作者: Kvm    时间: 2017-12-20 13:07
2010年2011年玩这些都已经腻了。。。。。。
作者: orlog    时间: 2017-12-20 13:09
莫拉格 发表于 2017-12-20 13:06
后端加了SSL  前端我再买个新域名A记录到小鸡,那NGINX怎么配置呢

前端加ssl的教程我下次再补充,你也可以先自己动手试一下,都挺简单的
作者: zhangl0512    时间: 2017-12-20 13:10
orlog 发表于 2017-12-20 12:58
你想敦促新人学技术的想法不错,不过毕竟我们都是在使用别人的各种轮子
你我也不可能自己写一个debian之 ...

对,不可能因为不会而不去做,有的人喜欢钻研学习,那么从头学起,有的人只想伸手一键反代,不想学习这方面的,各有所需!感谢楼主的教程!
作者: aaawww    时间: 2017-12-20 13:24
大佬威武, loc现正少的就是大佬这样的热心人。这文章先收藏了
作者: jhsyue    时间: 2017-12-20 13:32
反代我就没见过比caddy配起来更简单的
作者: ultramancliub    时间: 2017-12-20 13:40
jarvan 发表于 2017-12-20 11:37
为啥我用的宝塔面板 的反代理  有图比 ,毫无效果。

Ngnix反代不了油罐,三个月前研究过,因为油罐域名太多,放弃
作者: cnly1987    时间: 2017-12-20 13:43
强势插入 火的帖子
作者: 吃冬瓜的西瓜皮    时间: 2017-12-20 13:45
windows系统怎么设配置文件
作者: 老包子    时间: 2017-12-20 13:54
伸手党前来为你点赞
作者: 傻逼真的很傻    时间: 2017-12-20 14:08
提示: 作者被禁止或删除 内容自动屏蔽
作者: mymyhope    时间: 2017-12-20 14:51
其实Caddy更简单还可以自动SSL+301。
作者: orlog    时间: 2017-12-20 14:53
mymyhope 发表于 2017-12-20 14:51
其实Caddy更简单还可以自动SSL+301。

噢 没用过这个,反正一直就用的nginx,感觉也不复杂
作者: dream7758521    时间: 2017-12-20 15:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: dream7758521    时间: 2017-12-20 15:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: houset    时间: 2017-12-20 16:28
学习了,支持技术大佬,坐等更新
作者: 591vps    时间: 2017-12-20 17:08
感觉反代服务器跨地区访问就慢的一匹
作者: onsy    时间: 2017-12-20 17:16
看起来很有用的样子,我就是新手
作者: Smart    时间: 2017-12-20 17:34
哎,前天折腾了许久没成功,最后还是装了amh4.2那个反代模块才成功的。反代别人站申请了个cloudflare合作伙伴。。
作者: 橙影    时间: 2017-12-20 22:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: bagayalu    时间: 2017-12-20 22:59
收藏了收藏了
作者: names    时间: 2017-12-20 23:05
orlog 发表于 2017-12-20 11:31
如果是要镜像别人的网站,那么第二步的设置是这样:

server {

mjj.party 登录回复出现,抱歉您的请求不正确,正在提交。
作者: orlog    时间: 2017-12-21 10:17
names 发表于 2017-12-20 23:05
mjj.party 登录回复出现,抱歉您的请求不正确,正在提交。

噢 试了下是有这个问题,现在我已修复了

作者: names    时间: 2017-12-21 10:21
orlog 发表于 2017-12-21 10:17
噢 试了下是有这个问题,现在我已修复了

大佬这个怎么修复的,我一直没找到为什么出这个情况。
作者: orlog    时间: 2017-12-21 10:26
names 发表于 2017-12-21 10:21
大佬这个怎么修复的,我一直没找到为什么出这个情况。

我下了份dz的代码,查看表单验证函数后发现是
preg_replace("/https?:\/\/([^\:\/]+).*/i", "\\1", $_SERVER['HTTP_REFERER']) == preg_replace("/([^\:]+).*/", "\\1", $_SERVER['HTTP_HOST'])
这个判断没通过,所以将配置文件修改为如下即可:

server {
        listen 80;
        server_name mjj.party www.mjj.party;
        index index.html index.htm index.php;
        access_log off;
        location / {
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_set_header Referer http://www.91ai.net/;
                proxy_set_header Host www.91ai.net;
                proxy_set_header Cookie $http_cookie;
                proxy_pass http://www.91ai.net;
                subs_filter_types text/html text/css text/xml;
                subs_filter www.91ai.net mjj.party;
                subs_filter 91ai.net mjj.party;
        }
}
作者: names    时间: 2017-12-21 10:27
orlog 发表于 2017-12-21 10:26
我下了份dz的代码,查看表单验证函数后发现是
preg_replace("/https?:\/\/([^\:\/]+).*/i", "\\1", $_SER ...

非常感谢,我去研究一下。
作者: guoaibing    时间: 2017-12-21 11:45
傻逼真的很傻 发表于 2017-12-20 14:08
写的太复杂了,建议看下这个http://www.3000.cx/detail.php?id=6817,简单明了

大佬,这站你的吗

http://www.3000.cx/detail.php?id=6772  没下载地址
作者: 傻逼真的很傻    时间: 2017-12-21 11:47
提示: 作者被禁止或删除 内容自动屏蔽
作者: 隔壁套路哥    时间: 2017-12-21 12:04
大佬学习了
作者: adminii    时间: 2017-12-21 12:42
谢谢,很实用
作者: 南琴浪    时间: 2017-12-21 23:40
dream7758521 发表于 2017-12-20 15:07
有想法不要只说,这里有一群无脑d(我是其中一个,大概),小心被肛

emmmmmm
作者: oilbit    时间: 2017-12-29 00:04
样式全乱的说
作者: Hothua    时间: 2017-12-29 00:52
马克马克
作者: kkren    时间: 2017-12-31 13:36
loc昨天晚上是放了大招吗,mjj.party和我的反代都502了
作者: orlog    时间: 2017-12-31 13:42
kkren 发表于 2017-12-31 13:36
loc昨天晚上是放了大招吗,mjj.party和我的反代都502了

噢 好像是的,你的反代服务器是用哪的
                                             
作者: kkren    时间: 2017-12-31 13:59
orlog 发表于 2017-12-31 13:42
噢 好像是的,你的反代服务器是用哪的
                                              ...


aws和qn
作者: 地也就这么小    时间: 2018-2-16 00:17
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 全球主机交流论坛 (https://91ai.net/) Powered by Discuz! X3.4