- 系統(tǒng)設(shè)計(jì)
整個(gè)電商系統(tǒng)是Client/Serve結(jié)構(gòu),IOS端直接和用戶打交道折柠,后端處理用戶請(qǐng)求章办,完成對(duì)應(yīng)的邏輯芒炼。
Paste_Image.png
如圖所示瘫怜,IOS端是基于蘋(píng)果cocoa框架開(kāi)發(fā),采用Swift和Objective-C混編本刽,后端Vapor服務(wù)器作為api接口服務(wù)器鲸湃,開(kāi)發(fā)語(yǔ)言為Swift赠涮,是RESTful模式的服務(wù)器。IOS和Vapor服務(wù)器采用https安全協(xié)議通訊暗挑,Vapor服務(wù)器除了處理請(qǐng)求外笋除,還需要進(jìn)行MySQL數(shù)據(jù)庫(kù)操作。最后對(duì)象存儲(chǔ)服務(wù)器用于存儲(chǔ)文件炸裆,這此項(xiàng)目中主要存儲(chǔ)對(duì)象是圖片垃它。
- 系統(tǒng)部署設(shè)計(jì)
在完成基本的系統(tǒng)設(shè)計(jì)之后,還需要進(jìn)行進(jìn)一步部署的設(shè)計(jì)烹看,以達(dá)到在實(shí)際環(huán)境中使用的需求国拇。
Paste_Image.png
將系統(tǒng)設(shè)計(jì)進(jìn)一步細(xì)化,整個(gè)系統(tǒng)的部署如圖所示惯殊,首先后端部署在騰訊云上酱吝,服務(wù)器的操作系統(tǒng)為Ubuntu14.04 64TLS。在此基礎(chǔ)上利用騰訊云的域名解析服務(wù)靠胜,將域名和服務(wù)器IP地址綁定掉瞳,以便在公網(wǎng)的環(huán)境下能夠通過(guò)域名地址訪問(wèn)服務(wù)器。
之后是對(duì)服務(wù)器環(huán)境的搭建浪漠。首先一個(gè)需要Nginx服務(wù)器監(jiān)聽(tīng) 80端口和443端口陕习,并將所有80從端口進(jìn)入的http請(qǐng)求重定向到443端口,實(shí)現(xiàn)所有的請(qǐng)求都是https的址愿。在配置Nginx服務(wù)器作為Vapor服務(wù)器反向代理该镣,端口號(hào)為3030,所有從客戶端發(fā)來(lái)的https://api.steambean.me/bee 的請(qǐng)求都將被分配到這個(gè)端口上响谓,實(shí)現(xiàn)由Vapor服務(wù)器處理IOS客戶端程序發(fā)來(lái)的請(qǐng)求损合。
同時(shí)為了開(kāi)發(fā)是方便查看管理數(shù)據(jù)庫(kù),將MySQL數(shù)據(jù)庫(kù)的3366端口和映射到了Nginx服務(wù)器娘纷。 -
代碼管理
代碼管理采用github嫁审,過(guò)程如圖所示。
Paste_Image.png