架构

Client -> DIDIYun(HAProxy) -> HK

滴滴云 HAPorxy 配置

117.51.146.119

frontend v_linuxzen_com
		bind *:6697
		option tcplog
		mode tcp
		default_backend v_linuxzen_com_nodes

backend v_linuxzen_com_nodes
		mode tcp
		balance roundrobin
		option ssl-hello-chk
		server webserver1 45.115.36.35:443 check

客户端改动

需要调整 hosts

$ echo '117.51.146.119 v.linuxzen.com' | sudo tee -a /etc/hosts

HK V2Ray Docker 启动

$ docker run -d -p 127.0.0.1:25001:25001 --name v2ray --restart always -v /etc/v2ray:/etc/v2ray v2ray/official

HK Let’s Encrypt 证书

$ acme.sh --issue -d linuxzen.com -d www.linuxzen.com -d cwiki.linuxzen.com -d monitor.linuxzen.com -d v.linuxzen.com -d d.linuxzen.com -d piwik.linuxzen.com -d t.linuxzen.com -d wiki.linuxzen.com -d note.linuxzen.com -w /var/www/letsencrypt/
$ acme.sh --install-cert -d linuxzen.com --cert-file /etc/nginx/certs/linuxzen.com/cert.pem --key-file /etc/nginx/certs/linuxzen.com/privkey.pem --fullchain-file /etc/nginx/certs/linuxzen.com/fullchain.pem --reloadcmd "sudo service nginx reload && docker restart ipsec-vpn-ssl && docker restart v2ray && docker restart v2ray2"

HK V2Ray 配置

{
	"log": {
		"loglevel": "debug",
		"access": "/var/log/v2ray/access.log",
		"error": "/var/log/v2ray/error.log"
	},
	"inbounds": [
		{
			"port": 25001,
			"listen":"0.0.0.0",
			"protocol": "vmess",
			"settings": {
				"clients": [
					{
						"id": "1fde12b8-0cfd-11ea-a4b3-acde48001122",
						"alterId": 64
					}
				]
			},
			"streamSettings": {
				"network": "ws",
				"wsSettings": {
					"path": "/passport"
				}
			}
		}
	],
	"outbounds": [
		{
			"protocol": "freedom",
			"settings": {}
		}
	]
}

HK Nginx 配置

server {
				listen  80;
				server_name     v.linuxzen.com;
				return         301 https://$server_name$request_uri;
}

upstream v2ray {
				server 127.0.0.1:25001;
				server 127.0.0.1:25002;
}

server{
				listen 443 http2 ssl fastopen=3 reuseport;
				# listen 80;
				server_name     v.linuxzen.com;

				ssl_certificate /etc/nginx/certs/linuxzen.com/fullchain.pem;
				ssl_certificate_key /etc/nginx/certs/linuxzen.com/privkey.pem;
				ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
				ssl_prefer_server_ciphers on;
				ssl_dhparam /etc/ssl/certs/dhparam.pem;
				ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
				ssl_session_timeout 1d;
				ssl_session_cache shared:SSL:50m;
				ssl_stapling on;
				ssl_stapling_verify on;
				add_header Strict-Transport-Security max-age=15768000;

				access_log      /var/log/nginx/v.linuxzen.com.log;

				location / {
								root    /srv/www/v.linuxzen.com;
								index   index.html index.htm;
				}
				location /passport {
								proxy_redirect  off;
								proxy_pass http://v2ray;
								proxy_http_version 1.1;
								proxy_read_timeout 300s;
								proxy_send_timeout 300s;
								proxy_set_header Upgrade $http_upgrade;
								proxy_set_header Connection "Upgrade";
								proxy_set_header Host $http_host;
								proxy_set_header X-Real-IP $remote_addr;
								proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
				}
				include /etc/nginx/snippets/letsencrypt-acme-challenge.conf;
}

新增一个域名用于单独的滴滴云加速

使用一个单独的域名 vd.linuxzen.com 用于滴滴云加速,参见Let’s Encrypt