什么是反代站?
反代站,顧名思義就是反向代理站點(diǎn)的意思。在文章開始之前先來說說正向代理和反向代理的區(qū)別。
正向代理和反向代理
正向代理和反向代理
正向代理通過上面的圖理解其實(shí)就是用戶想從服務(wù)器拿資源數(shù)據(jù),但是只能通過 proxy 服務(wù)器才能拿到,所以用戶 A 只能去訪問 proxy 服務(wù)器然后通過 proxy 服務(wù)器去后端服務(wù)器拿數(shù)據(jù),這種情況用戶是明確知道你要訪問的是誰,在我們生活中最典型的案例就是 “ 科學(xué)上網(wǎng) “ 了,也是通過訪問代理服務(wù)器最后訪問外網(wǎng)的。
反向代理其實(shí)就是客戶端去訪問服務(wù)器時(shí),他并不知道會(huì)訪問哪一臺(tái),感覺就是客戶端訪問了 proxy 一樣,而實(shí)則就是當(dāng) proxy 服務(wù)器拿到用戶請(qǐng)求的時(shí)候會(huì)轉(zhuǎn)發(fā)到代理服務(wù)器中的隨機(jī)(也可由相關(guān)負(fù)載均衡算法決定)某一臺(tái)。而在用戶看來,他只是訪問了 proxy 服務(wù)器而已,典型的例子就是負(fù)載均衡了。
正常情況下,正向代理用于 VPN “科學(xué)上網(wǎng) ”,反向代理用于負(fù)載均衡。但從宏觀來說他們都是代理技術(shù),代理技術(shù)均可以在一定程度上隱藏自己的真實(shí) IP 。
反代的google站點(diǎn)
如何搭建?
0 、搭建前準(zhǔn)備工作:
- 您需要一臺(tái)位于中國大陸地區(qū)以外的 CentOS Linux 6 / 7 服務(wù)器,如香港、日本、新加坡和美國等地(各云主機(jī)廠商均可租賃,但小心實(shí)名制監(jiān)管,推薦使用搬瓦工);
- 既然是要做網(wǎng)站,您還需要注冊(cè)一個(gè)域名(域名可去阿里云注冊(cè);但阿里云是實(shí)名制的,小心監(jiān)管,不過目前查一個(gè)人還是很容易的);
- 為了增強(qiáng)安全性,您還需要申請(qǐng)一張 https 證書( https 證書可去阿里云或者?FreeSSL?申請(qǐng)。
1 、安裝 Nginx :
本篇文章介紹的安裝步驟僅用于快速(或最小化)搭建 Google 反代站
在安裝 Nginx 前請(qǐng)先升級(jí)一下 CentOS ,并通過 yum 源來安裝一些依賴包:
yum -y update
yum -y install pcre pcre-devel zlib zlib-devel gcc openssl openssl-devel
前往?Nginx 官網(wǎng)獲取最新版本的 Nginx 的下載鏈接( 當(dāng)前最新版本為 1.15.12 ),使用 wget 命令下載到 CentOS 并編譯安裝:
cd /tmp
wget http://nginx.org/download/nginx-1.15.12.tar.gz
tar -zxvf nginx-1.15.12.tar.gz
cd nginx-1.15.12/
./configure --with-http_ssl_module
make && make install
接著修改 Nginx 配置文件,先刪除原先的配置文件 nginx.conf ,然后再創(chuàng)建一個(gè)新的 nginx.conf :
rm -f /usr/local/nginx/conf/nginx.conf
vi /usr/local/nginx/conf/nginx.conf
接著鍵入小寫字母 i ,進(jìn)入編輯模式,將以下配置復(fù)制粘貼進(jìn)去(請(qǐng)根據(jù)實(shí)際需要進(jìn)行相應(yīng)地修改):
user nobody nobody;
worker_processes auto;
error_log logs/error.log crit;
pid logs/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 51200;
}
http
{
include mime.types;
default_type application/octet-stream;
server_tokens off;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 30;
tcp_nodelay on;
gzip on;
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;
#limit_zone crawler $binary_remote_addr 10m;
log_format default '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" -- "$http_cookie" $http_x_forwarded_for "$proxy_add_x_forwarded_for" "$request_time"';
server {
listen 80;
server_name 你的域名;
location / {
rewrite "^/(.*)" https://$host/$1 redirect;
}
}
server {
listen 443 ssl;
ssl_certificate cert/證書.pem;
ssl_certificate_key cert/密鑰.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
server_name 你的域名;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
access_log logs/access.log default;
location / {
proxy_pass https://www.google.com;
}
}
}
按一次 ESC 鍵退出編輯模式,然后鍵入 “ :wq ” 保存并退出。
其中 cert/證書.pem 和 cert/密鑰.key 為域名的 https 證書文件,存放路徑位于 /usr/local/nginx/conf/cert/ 。
現(xiàn)在使用如下命令啟動(dòng) Nginx 即可:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
2 、啟用 Nginx 認(rèn)證(可選):
如果您不希望任何人都可以訪問您的網(wǎng)站,那么需要啟用 Nginx 認(rèn)證,僅登錄成功后才可訪問該網(wǎng)站(如下圖所示)。
啟用 Nginx 認(rèn)證
通過 yum 源來安裝依賴包 httpd :
yum -y install httpd
生成密碼文件:
mkdir /usr/local/nginx/conf/auth
htpasswd -b -c -m /usr/local/nginx/conf/auth/htpasswd mdpblog 123456
其中 mdpblog 為賬號(hào),123456 為密碼,請(qǐng)根據(jù)實(shí)際需要進(jìn)行相應(yīng)地修改。
修改配置文件 nginx.conf ,在相關(guān)位置添加如下兩行即可:
server {
listen 443 ssl;
ssl_certificate cert/證書.pem;
ssl_certificate_key cert/密鑰.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
server_name 你的域名;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
access_log logs/access.log default;
auth_basic "login";
auth_basic_user_file /usr/local/nginx/conf/auth/htpasswd;
location / {
proxy_pass https://www.google.com;
}
}
現(xiàn)在使用如下命令讓 Nginx 重新加載配置文件即可:
/usr/local/nginx/sbin/nginx -s reload
至此,反代站部署完成。
反代站有何優(yōu)缺點(diǎn)?
優(yōu)點(diǎn):
- 無需安裝客戶端即可直接使用。
缺點(diǎn):
- 不能反代所有站點(diǎn)(您可以打開反代網(wǎng)站?,然后搜索 facebook ,在搜索結(jié)果中打開 facebook 的首頁,您會(huì)發(fā)現(xiàn) facebook 的首頁是打不開的,因?yàn)?www.facebook.com 這個(gè)網(wǎng)站沒有做反向代理);
- 隱蔽性不強(qiáng),一個(gè)自定義域名(如:google.madapang.com)完全對(duì)應(yīng)一個(gè)被代理的站點(diǎn)(如:www.google.com )。
【標(biāo)準(zhǔn)版】400元/年/5用戶/無限容量
【外貿(mào)版】500元/年/5用戶/無限容量
其它服務(wù):網(wǎng)站建設(shè)、企業(yè)郵箱、數(shù)字證書ssl、400電話、
聯(lián)系方式:電話:13714666846 微信同號(hào)
聲明:本站所有作品(圖文、音視頻)均由用戶自行上傳分享,或互聯(lián)網(wǎng)相關(guān)知識(shí)整合,僅供網(wǎng)友學(xué)習(xí)交流,若您的權(quán)利被侵害,請(qǐng)聯(lián)系 管理員 刪除。
本文鏈接:http://www.goalq.com.cn/article_32705.html