能讓你看醉了:讓「開源」承包整個IT系統php
----你造嗎?Linux軟件一直很拼的。ios
哥浸淫企業IT架構設計這麼多年,「私人定製」的設計產品五花八門,既有過「高大上」型的大品牌會戰,也有過「屌絲」型的免費開源混搭。此次就跟你們來聊聊我最近的一次鐵(yi)公(mao)雞(bu)式(ba)企業IT系統搭建項目。數據庫
一. 需求分析:瀏覽器
用戶企業是師妹註冊剛開的一家文化傳媒公司。硬件環境是兩臺大公司淘汰下來的服務器和一下網絡設備。對內要有員工上網,文件交流、存儲、打印,郵件收發;對外要有官網、論壇、會員博客,視頻文件上傳/下載等;遠程要有員工在企業外訪問內網資源。她的心很大,時髦的IT服務她都想到了。哎。既然是「師妹」相求,又是剛起步,你懂的了。哥巴不得達到「既要馬兒好又要馬兒不吃草」的效果。緩存
二. 概要設計:sass
哥一直身處外企,養成了尊崇標準的習慣。因此此次設計仍是沿用標準化的節奏,全部涉及到的開源軟件都挑選的經過並持有GPL(GNU General Public License 通用公共許可證)的。此設計的總體功能服務器劃分爲:安全
· 文件共享和打印服務器(Samba),服務器
· 反向代理(Web)服務器(Squid3.0+Apache+LNMP+Keepalived),網絡
· 郵件服務器(Postfix+Courier-IMAP+maildrop+Extmail+Extman+Amavisd-new+SpamAssassin+Clamav+Apache+phpMyAdmin+MySQL),架構
· 上網(正向)代理服務器(Squid3.0+Clamav+IPTables),
· BBS/blog/FTP服務器(Discuz!+X-Space+ProFTPd+MySQL),
· 遠程接入服務器(PPTPD)。
三. 細節說明:
虛擬機:VirtualBox 4.3 改版本支持虛擬機的克隆和SATA硬盤的熱插拔等特性。
操做系統:Linux哪家強?固然是CentOS 7。其7版本已將內核更新至3.10.0。CentOS高穩定性的服務器的上選。
文件共享和打印服務器:用Samba解決異構平臺中數據共享與傳輸問題,值得一提的是若是企業往後發達了(但願師妹有朝一日變成「白富美」)升級或轉換到微軟架構,Samba一樣能夠加入到活動目錄(AD)中,實現單一登陸訪問(SSO)。
反向代理(Web)服務器:
方案採用的是LNMP架構,其中Nginx用做並實現負載均衡;Squid用做並實現反向代理;Apache用做並實現Web服務的發佈。
除了Nginx自己,還要安裝ngx_cache_purge(緩存服務)。
而除了Apache自己,還要安裝PHP、PHPMyAdmin、php-memcache、eAccelerator、libmcrpt(php擴展)、cmake(MySQL的編譯工具)、CoreSeek(MySQL和PHP的中午檢索)、多文件類型支持模塊(包括gb, libvpx, tiff, libpng, freetype, jpgsrc)。
另外,Apache的安全工具:mod_clamav(防病毒),Ddos(防止DDos***)和ModSecurity(應用防火牆)、以及驗證模塊(Sasl和Authlib)。
而數據庫則選用MySQL,由於它相對於PostgreSQL來講更流行更多支持和完善的文檔資料。
郵件服務器:
Postfix:利用SMTP協議提供郵件發送服務。
POP3/IMAP服務:Courier-IMAP:提供多種用戶認證模塊和方式、支持虛擬郵箱、支持共享目錄而且能夠限制IMAP同事登陸的數目以及同一IP地址登陸數,還能有效應對DoS***。另外Dovecot做爲可選,由於其安全性比價出衆,且通常Linux系統自帶。
Maildrop是必要的郵件投遞代理,負責將郵件轉發到用戶郵箱。
SmapAssassin是利用Perl對郵件內容來進行文字分析以達到過濾垃圾郵件的目的,它對郵件各類特徵進行評分方式,總分高於門限值就視爲垃圾郵件。
MailScanner能夠對Postfix、SpamAssassin和ClamAV進行總管並協調各模塊之間的工做。可是我的以爲其必須監視Postfix的Hold隊列,此「暴力」作法實在坑爹,所以我採用Amavisd-new對郵件病毒進行掃描。
那麼對郵件系統、郵箱設置等綜合管理我採用由Perl語言編寫的ExtMail,它具備面向大容量ISP級別應用和高性能。
WebMail:SquirrelMail,不使用任何JavaScript代碼,純粹用PHP所開發,從而兼容各類瀏覽器。它有支持加強的MIME、地址簿、文件夾操做等功能。且通常Linux系統自帶。
遠程接入服務器:方案設計上採用的是構建×××網絡讓遠程用戶撥入系統內部。選擇PPTPD的緣由是通常人員用的是Windows操做系統,而Windows客戶端默認就支持PPTP方式的×××,Windows用戶不須要額外安裝客戶端軟件而只需簡單配置即可。
四.運維設計
妹紙的需求在功能上已知足了。那麼問題來了,若是系統運行沒一段時間就遇到問題或***,學妹是否會抱怨此等「終身大事」相托,卻搞得如此脆弱,「人與人之間的基本信任都沒有」。哥自認爲是一個負責任的網絡設計師,爲了系統在實際使用中的平穩運營,我前瞻性的多走一步,設計了方便運維的模塊。
· 文件存儲與備份:考慮到文件服務器硬件配置且爲二手,同時估計IT人員是剛畢業的「小鮮肉」,哥設計上採用的是FreeNAS軟件的NAS架構,備份介質則用平時的移動硬盤即可。
· 網絡管理:網管軟件採用的是Nagios的「分佈-集中」模式對網絡及應用的各類特徵進行自定義監控,且有友好的Web界面和報表功能。
· 集中配置管理:我採用的是C/S結構的自動化運維工具Puppet。
五. 後記
設計完成,學長只能幫你到這裏了。以後,我協同其單位的IT專業小夥伴聯合實施,歷時3個多月,系統搭建完成並上線,除了BBS/blog/FTP服務器還沒有投入使用外(不是臣妾作不到,而是師妹的合夥人—一位女漢子說這些錦上添花的功能等後期發展壯大了在逐步推出),一切運營正常且效果還不錯。師妹誇我有「業界良心」,在其公司啓動資金有限的狀況下,實現了「多快好省」。我得意的笑並不由自主的哼起了本身一直唾棄卻老是不禁得唱起的「你是個人小啊小蘋果。。。。。。」