作为一个程序员和创业小白,去年写了一款APP发布到了苹果AppStore应用商店。APP有会员功能,所以有一个应用内支付充值的功能,这个充值功能本来在国内使用微信支付非常舒服方便的;上架到AppStore后受到苹果的胁迫,微信支付功能全部下马,必须上马支持苹果ipa应用内支付。这是一个比较头疼的问题。因为必须架设服务器解决支付订单的验证及会员管理。思来想去,决定使用腾讯云轻量作为解决方案,在腾讯云轻量硅谷站部署一台服务器做开发环境,同时在腾讯云轻量中国香港站部署了一台备用服务器。
在考虑使用腾讯云轻量服务器处理苹果ipa应用内支付功能后,仔细思考后发现可能存在几个问题。因为全球各地的用户网络环境很复杂,所以我首先是对腾讯云轻量硅谷站、腾讯云轻量新加坡站、腾讯云轻量中国香港站3个地点做了网络环境测试,总体上感觉在硅谷站部署服务器相对更合适一些。另外考虑到未来用户增长性,所以准备采用docker容器化技术。这样做的好处有:
1、快速部署,迁移方便,例如可以很方便的迁移到欧洲的莫斯科、法兰克福,或者到亚洲的东京、中国香港、新加坡。甚至以后的南美站。
2、未来可以比较方便的扩展,使用nginx负载均衡,在欧洲、亚洲、北美都部署一个分站,加快本地用户的苹果支付处理速度。
我的主要工作是开发客户端APP,在后台方面基本是小白。腾讯云轻量给我这样的用户提供了很好的平台,我非常方便的就开了一台服务器。同时花几天时间学习了一下docker,简单写了一个docker-compose.yml:
version: '3'
networks:
service-net:
driver: bridge
services:
wk-nginx:
container_name: wk-nginx
build: ./nginx
ports:
- 80:80
- 443:443
volumes:
- ./www:/usr/share/nginx/html
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/conf.d:/etc/nginx/conf.d
- ./nginx/cert:/etc/nginx/cert
- ./nginx/logs:/var/log/nginx
depends_on:
- wk-php
restart: always
networks:
- service-net
wk-php:
container_name: wk-php
build: ./php
#depends_on:
# - wk-redis
volumes:
- ./www:/usr/share/nginx/html
- ./php/php.ini:/usr/local/etc/php/php.ini
- ./php/logs:/usr/local/var/log
restart: always
networks:
- service-net
写完上传到服务器,安装运行后,就这样轻松的在腾讯云轻量的机器上很轻易的就部署了一个docker的容器,采用php作为订单处理的接口代码。容器运行后,用苹果手机测试了一下充值支付功能,成功完成支付。
接下来我想测试一下负载均衡,于是我改了一下服务器的nginx,增加了一个upstream.con设置,代码如下:
upstream wkserver {
#ip_hash;
server 127.0.0.1:8080; # 硅谷站
server 11x.xx.xxx.xxx:80 backup; # 香港站
}
server {
listen 80;
listen 443 ssl;
server_name wkserver;
ssl_certificate /etc/nginx/cert/1_xxxxxx.com.crt;
ssl_certificate_key /etc/nginx/cert/2_xxxxxx.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://wkserver;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 8080;
#server_name xxxxxx.com;
index index.php;
root /usr/share/nginx/html/public;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ \.php {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_index index.php;
fastcgi_pass wk-php:9000; #容器名:端口
}
access_log /var/log/nginx/default.log main;
}
经过测试,中国香港站也能正常运行。通过腾讯云轻量的应用部署,我的APP开始完整支持苹果应用内支付功能。把最新的APP更新到AppStore后,陆陆续续有一些全球各地的用户开始使用APP中的支付功能,账户也开始陆陆续续的听到金币跌落的声音,那可都是都是腾讯云轻量腾云驾雾带来的啊!
这可真是一个美妙的感觉,我真的无法想象,没有这些方便的基础设施,个人开发者根本无法驾驭这么复杂的应用环境。感谢腾讯云轻量,感谢互联网,给你们一万个赞!加油!