测试场景
由于链路问题,为了保障链路质量,通过高速通道跳转回源。 使用华东1的VPC模拟A区域,使用华东2的VPC模拟B区域的,服务端为真实的源站。 即: client->华东1vpc->华东2VPC->源站服务器;
部署为http服务。
测试环境
1.客户端:华北1 ECS:xx.xx.17.204 2.模拟中转环境:
地域
|
vpc实例ID
|
网段
|
路由接口
|
测试ECS实例
|
私网IP
|
公网IP
|
华东1
|
vpc-bp15quc1ec8jgbexxxx
|
192.168.0.0/16
|
ri-bp17uip06c3lxxx
|
i-bp16bg1pf5e0ozhdrxx
|
192.168.100.11
|
xx.xx.175.46
|
华东2
|
vpc-uf6dkst3815ispzxxxxx
|
172.16.0.0/12
|
ri-uf6oh5quroxxx
|
i-uf6itotpmd9k9u7b0xx
|
172.24.2.33
|
xx.xx.135.89
|
3.服务端:华南1 ECS:xxx.xxx.247.201 4.测试域名:
tz.pier39.cn 域名解析到华东1的ECS公网IP上 xx.xx.175.46
路由配置
华东1
vpc-bp15quc1ec8jgbexxxx 配置 172.16.0.0/12 这个网段的路由指向 ri-bp17uip06c3lxxxx
华东2
vpc-uf6dkst3815isxxxxx 配置192.168.0.0/16 这个网段的路由指向 ri-uf6oh5quroxxxxx
配置后测试互ping正常
服务配置
注:主配置文件没有改动,2台ECS就贴一份了。 主配置文件:
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
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;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
# Settings for a TLS enabled server.
#
# server {
# listen 443 ssl http2 default_server;
# listen [::]:443 ssl http2 default_server;
# server_name _;
# root /usr/share/nginx/html;
#
# ssl_certificate "/etc/pki/nginx/server.crt";
# ssl_certificate_key "/etc/pki/nginx/private/server.key";
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 10m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
#
# # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
#
# location / {
# }
#
# error_page 404 /404.html;
# location = /40x.html {
# }
#
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
# }
}
1.华东1
VPC ECS实例(192.168.100.11)上配置nginx提供80端口服务,并反向代理到华东2-VPC ECS实例(172.24.2.33)的80端口上;
upstream tzserver {
server 172.24.2.33:80;
}
server {
listen 80;
server_name tz.pier39.cn;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tzserver;
index index.html index.htm;
proxy_set_header Host $http_host;
proxy_set_header X-Forward-For $remote_addr;
}
}
2.华东2
VPC ECS实例(172.24.2.33)上配置nginx提供80端口服务,并反向代理到服务端华南1 ECS:120.24.247.201的80端口上;
upstream tzserver33 {
server 120.24.247.201:80;
}
server {
listen 80;
server_name tz.pier39.cn;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tzserver33;
index index.html index.htm;
proxy_set_header Host $http_host;
proxy_set_header X-Forward-For $remote_addr;
}
}
测试
能够正常访问到 服务端(xxxx.xxx.247.201)的内容。
总结
1.业务架构
这个这里介绍的架构比较简单只是ECS到ECS最后回源到服务端。 如果考虑高可用,可以加入slb。类似架构: client->华东1 slb->华东1 ECS->华东2 slb -> 华东2 ECS->源站
如果接入高防/waf可以类似的架构: client->WAF/高防->华东1 slb->华东1 ECS->华东2 slb -> 华东2 ECS->源站
如果接入CDN的架构类似: client->CDN->WAF->华东1 slb->华东1 ECS->华东2 slb -> 华东2 ECS->源站
如果出现链路拥塞时,可以考虑如此配置,规避链路问题;
2.业务类型
这里介绍的业务为http的,同理https的方式是是一样的。
使用到的原理为请求的转发,如果其他类型的业务能够满足这个条件也可以使用。
3.其他
上述配置过程中,相关高速通道的配置内容没有细节,只注重了实现。
具体的方法可以参考链接内容:
https://help.aliyun.com/document_detail/44842.html