為什麼目前web伺服器一般用Linux操作系統而不是windows?
在伺服器方面 linux比windows好在哪裡?
第一,現在windows伺服器佔有率也不算低。第二,技術選型都有歷史積累的,放前幾年windows伺服器有些比較明顯的麻煩,比如語言和默認編碼,還有就是沒有域管理的話,自動部署和控制也是個麻煩,windows有windows的管理技能,國內在windows管理員這個行當,人力資源積累的並不豐厚。但是前幾年也不是說windows伺服器就完全沒有,我們做星空極速的時候伺服器就是windows的,.net 服務。廣東省互聯星空的計費網關也是。第三,貴,反正我窮,我玩不起。現在的年輕人可以選Azure了,話說當年……(躺
1) 最流行的伺服器端操作系統,強大的安全性和穩定性。
2) 免費且開源,輕鬆建立和編譯源代碼。
3) 通過SSH方式遠程訪問您的雲伺服器。
4) 一般用於高性能web等伺服器應用,支持常見的PHP/Python等編程語言,支持MySQL等資料庫(需自行安裝)。
2.1 CentOS (推薦)
請使用yum方式在線安裝軟體。
2.2 Ubuntu
請使用aptitude方式在線安裝軟體。
2.3 Debian
請使用apt-get方式在線安裝軟體。
2.4 Aliyun Linux(兼容 Red Hat)
請使用yum方式在線安裝軟體,yum源需要自行購買redhat的商業支持。
現在知乎上的鍵盤神越來越多了哈,擺出一副大神的姿態,也不提供些乾貨,還喜歡到處噴人,此種人我就直接拉黑舉報了哈,比如這位:SPOBAK
本來我就是吐槽吐槽,然後被當做小白給我科普windows和Linux,我也是醉了,還有上面點名的那位說我沒用過Windows。
那我就認真答一下吧,問這個問題的明顯是對Linux不太熟悉,所以,我著重說一下Linux,淺嘗輒止。噴子和鍵盤神略過。
Linux和Windows比較起來,應該說是更加靈活。既然討論的是操作系統,那麼說什麼django之類的應用層就是耍流氓了。我相信,所有能在Linux上面跑的代碼,都可以在Windows上跑。技術是萬能的。
我們要討論的是,為什麼大多數公司部署伺服器,都喜歡用Linux,而不是Windows。其實很簡單,windows本來就是面向普羅大眾的,而Linux本身就是面向企業的。
個人覺得,Linux跟windows比最大的競爭力是開源。關於企業用的服務構架這個領域,生態要好得多啊。代碼來源於全世界的大神們,相比起來,更加豐富,更加穩定。
我一開始是用win的,後來開始用Linux,尤其是在RED HAT工作的那幾年,對Linux有了更深的了解,於是愛的更加深。透明,乾淨,簡潔,不像windows總給我一種神秘和厚重感。
1,Linux更加輕便簡潔。Linux的核心就是kernel,提供了網路,時鐘,內存,cpu,文件系統,存儲的管理。大多數Linux系統,內核都是差不多的,而包裝千變萬化。根據不同的需求,可以封裝成不同的ISO,偏向於web的,偏向於存儲的,偏向於網路的,偏向於虛擬機的,偏向於大數據的,你甚至可以根據不同的應用場景做不同的優化,我說的是系統層的,比如對內存的管理之類的。
比如文件系統。Linux系統所支持的文件系統很多,ext3,ext4,xfs是比較主流的。不同的文件系統各有優缺點。比如RHEL5,RHEL6都是用的ext系列,但是RHEL7升級為xfs,在穩定型方面,ext系列要好些,但是在大數據處理方面,xfs的性能要好一些。RHEL7是紅帽針對於大數據和雲計算做過優化的,所以選用了xfs。當然,鍵盤神又要說windows也可以呀。是的,windows也可以,類似ghost之類的,windows裡面有一個工具,是可以把系統重新封裝成可引導的ISO的,所以也可以做到以上。但是我用過兩者的功能,還是覺得Linux更加方便。
2. 我喜歡Linux一切皆文件的設計。
當你要部署某個服務的時候,只需要安裝服務,然後修改配置文件,然後重啟服務,就可以用了。比如Apache,nfs,ftp,Samba,mail,等等。鍵盤俠又要說:windows也可以呀。嗯,windows也有這些服務,可以去系統功能里打開服務,然後勾勾選選,然後也就可以用了。3. Linux可以很多人共同登錄進一個伺服器里工作,對於伺服器來說,應該會有很多人共同維護開發之類的。windows的話,兩個人同時動滑鼠,怎麼搞?
4. Linux沒有註冊表之類的東西,磁碟碎片會少很多,不會像windows那樣用著用著就會越來越卡。Linux的kernel也更加穩定些,沒有windows那麼容易panic,系統對資源的消耗會小很多。
5. 你用Linux的時候,你會更容易對操作系統有一個清晰的輪廓。
6. 部署更加方便。
不說別的,就說一個kickstart文件,在集群部署的時候,能給你省很多事情,想改變一些東西只需改這個文件就好了。鍵盤神又要說了,windows也可以啊。我做過windows的封裝和集群部署,每次有什麼改動的時候也還是挺麻煩的。當然也有辦法,比如寫一些bat腳本放在系統里,開機啟動的時候自動配置好網路,然後下載安裝,也都可以的。
但是勞資就是覺得Linux更人性化,你tm有本事咬我呀?有牛逼你去用windows當伺服器呀。沒人攔著你呀,我就落伍了,我就bb了,怎麼滴?
————————————————————————————————————假設我要在windows上寫個簡單web,首先,我得打開IIS,設置防火牆,編輯各種許可權,設置各種協議。然後我才可以去開發。而Linux系統你只需要把你的html放在/var/www/html/下然後service httpd start就okay了。
Linux的開源讓你簡直欲罷不能啊,shell工具能夠為你處理很多日常工作。最關鍵的是,出了問題很好debug,連內存里的信息都可以看到。windows就噁心了,什麼也看不到。以下是個人的一點見解
個人站長:
這個..因為個人站長,尤其是一些草根站長,相對欠缺專業的伺服器維護管理知識,或者基於成本考慮,都是租用空間.所以大部分還是紮根在windows陣營.其實linux免費,同樣配置的伺服器,每年下來會節省一筆開支,而且資源利用率更高,負載更高.
企業:
企業平台相對來說還是選擇linux更多些.1. 從成本方面來說,企業也是一樣,各種開源程序相比需要windows平台那堆需要授權的程序來說,每年也會節省一筆不菲的開支.2. 佔用資源低,GUI運行也需要佔用那點兒珍貴的系統資源3. 現在大數據越來越流行,圍繞大數據應運而生的就是各種分散式架構,對於大批量的機器集群環境統一部署及管理,4. 對於擁有較為專業技能的管理人員來說,linux平台的開發及維護成本要更低.服務穩定這個梗,不太好說,雖然都人云亦云linux更穩定,其實伺服器方面windows也是常年不關機的
開發人員:1. 用得多了就得隨大流了,不然跟不上形勢發展.2. 以我知道的php開發來說,不用為了找各種擴展而頭疼,linux下各種強大包管理工具瞬間幫你安裝完成.
3. 避免因為開發環境與生產環境差別導致的一些bug4. 有進行一些數據處理之類的工作,linux shell發成本更低且更高效,不同的小工具可以靈活的組裝在一起完成複雜的任務主要是互聯網公司用linux多,給人誤解了。其實很多企業信息系統,使用微軟大法的。其中一個原因是,企業的IT部門需要人扛鍋,出事了好找人,互聯網公司IT研發找人扛鍋沒用の。二是貴,信息系統用不了太多伺服器,互聯網公司上萬台,財務分分鐘教你做人。
居然有人邀…這什麼情況,但是……首先,這個問題就有問題,知乎名言:「先問是不是在問為什麼」詳見:微軟的 Web 伺服器為何能屹立不倒? - Nginx接著,就算你的問題是對的,知乎里也有很好的回答了,為什麼不搜一下呢?詳見:Linux 作為伺服器操作系統的優勢是什麼? - Linux
國內用Windows Server的真心不少,尤其是絕大部分二四線城市黨政機關的官方網站,基本都是Windows Server。
以我的家鄉廣東江門為例,下轄幾乎所有縣市的政府網站都是Windows Server。
比如:鶴山政府網是IIS 7.5,應該是Windows Server 2008R2。恩平政府網跟鶴山一樣。開平政府網是在Windows Server上跑Apache。但據我所知,這類網站中使用Windows Server的確實比Linux多,尤其是很多縣市都是自己僱傭技術人員去開發和維護所有託管在政府機房的政務站點,無論人手還是技術能力都不可能跟真正的互聯網公司相比,甚至半路出家半吊子硬上的也不是沒有。你叫他們搭一套Windows Server + IIS + MySQL + PHP環境出來,照著教程做,做到打開頁面的程度,可能並沒什麼什麼難度,畢竟Windows都玩了半輩子,不會游泳,狗刨總沒問題吧。
而像Linux伺服器這種技術門檻相對較高的還是算了吧,要敲命令還滿眼雞腸(英文),我有個就是吃這行飯的網友曾經說過,真懂這麼多幹嘛不去正經的互聯網公司?沒錢用linux,有錢用windows,很有錢用linux,非常有錢...能做朋友嗎?
nginx,太屌。
從技術層面回答這個問題的人們,你們太圖樣圖森破了。這種世界範圍級的現象要從經濟角度上去理解啊。簡而言之:三個字「TOS」兩個字「成本」一個字「錢」
1、首先是傳統的影響吧,在linux之前伺服器是UNIX(那時windows 還沒穩定到可以做伺服器),linux繼承了UNIX的血統,相關的伺服器維護人才一代帶一代。2、好用的腳本工具(對於熟悉它的人,比圖形界面效率更高)3、易定製,可以整得很小,只保留核心必須功能,其他功能全部幹掉,避免引入不相關的漏洞。4、成本因素,小公司少數幾台伺服器windows授權還可以接受,量大了是一筆不小的開支。5、成熟的LAMP組合。6、高性能的WEB伺服器大多先支持Linux.
梳理下我的總結吧,只列舉兩個平台的優勢
windows server
1. 圖形化GUI,既是亮點也是槽點,對新手開發者來說很友好,在系統管理、監控、分析性能方面一目了然,但是大神們都不屑使用。
2. AD域的加持,系統加域之後,可以使用自己的內部賬號遠程登陸,很方便,用戶也隔離開了。
3. 對小型公司來說,使用windows簡單方便,遇到問題可以找微軟解決。
Linux server
1.開源
2.開源引發的一系列優勢。
3.還是開源。。。
通俗點講,首先就是開源,其次就是安全無漏洞不容易被攻擊。還有就是編程人員會Linux系統以後使用更加方便,一般人只是因為不懂代碼所以才需要windows的可視化操作。
互聯網 公司大多LINUX 群集,非IT公司一般都是WINDOWS server ,用於內部應用 。少許LINUX 。沒那個好,那個壞,適應需求才是王道。
Linux簡單啊,伺服器一次配好跑一兩年不用管,還比較穩定。各種許可權管理比win稍好。原生c程序無圖形化界面運行起來佔資源比較少
不是.win的web伺服器還是很多,可能對於大公司linux是一個好的選擇,但對中小企業linux的使用成本太高了.
因為windows要錢。
微軟的伺服器系統叫windows server不叫windows還有從windows server 2003/2008我都蠻喜歡windows server的。到 windows server 2012我就再也不用微軟這個2012就是一個奇葩。真的。都是槽點。一個伺服器系統採用了Metro界面。linux免費。命令行。學的時候特痛苦,不過有好處。所有的linux都可以敲敲能用。圖形化系統不一樣有些東西找不到了。因為前端主要是php主流,php和linux很適配,你用windows需要很多額外的插件轉換或者代碼轉換,最主要是效率~linux執行php比windows更效率~維護簡單高效穩定~
我覺得主要還是 .NET 的佔有率的問題。PHP之類的部署在Linux上面簡直就是簡單粗暴經濟實惠,用Windows少說也得買個授權吧。
以目前的情況來看:
1. 價錢,Windows授權費太貴。2. Linux技術可組合方案比較多,可定製化。3. Linux自動化運維比Windows強太多,這一點在大公司很重要。4. 有疑難雜症Linux排查方案多,Windows只能上Case。以前Windows還有不少市場,現在逐漸萎縮,Linux大勢所趨,微軟不上大招就要完。推薦閱讀:
※Node伺服器是如何處理大量請求的?
※鬥魚是怎麼做到十幾萬人超清直播的,帶寬夠嗎?
※docker和virtualenv有什麼區別?
※在採購之前如何評估伺服器的性能夠不夠,主要是CPU?
※IBM 和 Google 等公司組建的 OpenPower 聯盟,會有何影響?