以書喻人的話,女生是紅樓夢,男生是金瓶梅
以書喻人的話,
女生是紅樓夢,
男生是金瓶梅。
有阿,你很有這一方面的潛能,只不過埋得很深,比較難挖掘
只尋找被愛,
而吝於愛人,
很難覓得真愛的吧。
早就告訴過你們,
安全第一,
你們知道被車子撞飛在空中的樣子多像一個殘破的娃娃嗎?
寬鬆的上衣讓我幾乎可以毫無阻礙的窺視進去
節錄自很多書,多到我忘了有哪些
女生是紅樓夢,
男生是金瓶梅。
有阿,你很有這一方面的潛能,只不過埋得很深,比較難挖掘
只尋找被愛,
而吝於愛人,
很難覓得真愛的吧。
早就告訴過你們,
安全第一,
你們知道被車子撞飛在空中的樣子多像一個殘破的娃娃嗎?
寬鬆的上衣讓我幾乎可以毫無阻礙的窺視進去
節錄自很多書,多到我忘了有哪些
分享一個不錯的 .bashrc SP1設定
PS1='\[\033[1;33m\]\u\[\033[1;37m\]@\[\033[1;32m\]\h\[\033[1;37m\]:\[\033[1;31m\]\W \[\033[1;36m\]\$ \[\033[0m\]'
看起來像這個樣子 (比較容易識別):
root@zaurus:home #
說明:
\[\033[ 是 ANSI 顏色控制碼起始
1;33m\] 是顏色控制碼
第一個數字是亮度, 1 是高亮度,0是普通亮度,還有2閃爍 (少數 shell 才有支援)
第二個數字是顏色代碼
\[\033[0m\] 是關閉 ANSI 顏色控制碼,必須加於末尾,後來畫面顯示的文字才不會帶顏色
轉貼自http://forum.palmislife.com/viewthread.php?tid=12210
看起來像這個樣子 (比較容易識別):
root@zaurus:home #
說明:
\[\033[ 是 ANSI 顏色控制碼起始
1;33m\] 是顏色控制碼
第一個數字是亮度, 1 是高亮度,0是普通亮度,還有2閃爍 (少數 shell 才有支援)
第二個數字是顏色代碼
\[\033[0m\] 是關閉 ANSI 顏色控制碼,必須加於末尾,後來畫面顯示的文字才不會帶顏色
轉貼自http://forum.palmislife.com/viewthread.php?tid=12210
什麼是伺服器?What is server?
什麼是伺服器?
一般人對伺服器的印象常常是『一個巨大的機房,裡面放著很多機器,很多線路,好像那種東西是一般大眾買不到的、很神秘的東西!』其實,完全不對!
在維基百科上面,伺服器的定義如下:『伺服器以硬體來說,通常是指那些具有較高計算能力,能夠提供給多個用戶使用的電腦主機。 伺服器與個人電腦的不同點太多了,例如個人電腦在同一個時間通常只為一個使用者服務。而伺服器同時給很多人使用。』
不過這已經是舊時代的想法了,以現在(20080810)市面上的電腦來說,一個一萬二的主機,不含螢幕價錢,其實也可以勝任一個不錯的伺服器。大約可以給兩百人同時瀏覽架設於其上的網頁沒有問題!有人說,電腦硬體就像一個軀殼,軟體就像思想或靈魂,硬體的效能決定了軀殼強壯與否,而軟體決定了CPU這個軀殼的身份以及行為。
伺服器就硬體上而言我們期待它是『夠強壯』的軀殼好勝任繁重的工作,並搭配合適的軟體讓它扮演特定角色;舉例來說,它會扮演成客服人員、接洽窗口、銀行行員、行政人員或是銷售員等各種角色,就像各種類型的伺服器軟體所提供的服務。
而使用者要使用這些服務也會有不同的方法,像有些單位會要求你領取號碼牌等候或是按照某些行政流程處理事項等,因此使用者使用特定服務時也有對應的客戶端程式來存取伺服器提供的服務。
那究竟伺服器是怎麼辦到的呢?遊戲的伺服器、MSN的伺服器、網頁的伺服器、FTP的伺服器、※夢之大地※的伺服器?這些可以讓我們連上去使用的服務,例如,你可以連上魔獸世界進行你的副本,你可以連上MSN取得你的朋友清單,可以連上GOOGLE進行你要的資料搜尋,可以連上夢之大地去course版找到你要的課的建議!這些服務是怎麼辦到的呢?
其實,仔細分析一下,上述的那些動作都可以分解為
『①利用某軟體,②然後去某處,③送出並傳回某些資料』
其中的第一項這個動作就是在你的電腦上面,也就是在所謂的客戶端上面完成,例如:
① 你開啟你安裝的魔獸世界執行檔
下一個步驟是在遠端的伺服器上面完成的,遠端的伺服器機器讓你的帳號登入,並且將你的角色資料從硬碟中讀到記憶體裡面,例如:
② 連去魔獸世界的伺服器
最後一個步驟從遠端伺服器開始,終於客戶端,也就是你自己的個人電腦。
③你送出你的帳密、或者你的角色移動的方向給魔獸伺服器
魔獸的伺服器會傳回帳密是否正確,或者你的角色移動之後的場景樣式給你的電腦,接著你的電腦上面的魔獸執行檔就會把那些電子資訊轉換成螢幕上的楊子給你看到了!又或者以網頁來說。
① 你打開你安裝的火狐瀏覽器
② 連去咕狗的首頁
③ 送出你搜尋的關鍵字,然後咕狗回傳給你搜尋的結果
上面所述流程就是所有伺服器的運作模式了!相信你所看到的!這絕對是『所有』伺服器的運作模式!任何伺服器提供的服務絕對都可以分解成以上動作,不過你必須知道,上面那些分解是為了讓大家容易瞭解伺服器做的事情,而正常我們在架設伺服器,對於網路的狀況作分析時,並不是像那樣分析的。
這些伺服器其實就只是一台電腦,一台可以開打他的網路某個通訊埠,讓別人的電腦可以透過這個通訊埠來取得資料的電腦!
具上所述,只要你的電腦可以連上網路,然後裝上可以回應出別人從網路上送出的要求的軟體!那麼,那就是一台俗稱的伺服器!
如何成為伺服器!
上面說過了!只要你的電腦可以回應給其他電腦正確的資訊時,那就是一台伺服器!
舉例來說:你想要一台網頁伺服器該怎麼作呢?
首先,你必須知道哪些軟體可以回應別人的電腦發出的HTTP協定要求,然後安裝他,並且開啟該軟體會使用到的通訊埠。真的!這樣就搞定了!當然了,只有作這樣的話其實並沒有做好一個伺服器該有的規劃,一個好的伺服器必須把硬碟的分割包含檔案分配做好,平均分散每顆硬碟的使用率,做好定期備份重要檔案,設置防火牆以免網頁被駭。即使你不去作這些規劃,你的伺服器依然可以運作,而且運氣好的話甚至可以運作得很順利(當然這不太可能…)。
至於,什麼是可以回應HTTP通訊協定的軟體?這本講義可以簡單的給你一個答案『Apache』。他唸作『阿帕契』
在Debain系統下你可以利用以下指令安裝Apache
apt-get install apache2
等系統將apache2下載並安裝完畢之後。基本上,你的網頁伺服器就完成了。
詳細的安裝和設定Apache,這就不在本講義的範圍之內了,不過我可以告訴你幾個地方,讓你有跡可循。
● 鳥哥的私房菜。鳥哥是成大的環工學長喔!鳥網裡面會告訴你,如何安裝linux(通常我們用這個os架站),如何安裝Apache和其他伺服軟體,例如電子郵件、FTP、DNS…。而且都會寫上非常詳細的各種服務的觀念!非常建議閱讀!
● Study-Area。這個網站裡面最富盛名的應該就是網中人了(netman),這個站裡面除了對於linux系統有非常多的介紹之外,也有寫到BSD系統的freeBSD。那也是一個非常棒的伺服器OS選擇!夢大就是運行在freeBSD上面的呢!
● FreeBSD架設管理與應用。其實這是一本書啦,這本書成大總圖有,不過全書內容都在作者佛心的分享之下統統都上線了!講義中我偏偏不俗套的附上網址,反正附了你們也不可能一個字一個字打上網址列,相信我,直接咕狗『FreeBSD架設管理與應用』比打網址快多了!這本書應該是最適合新手上路的一本書,因為他從基礎的安裝作業系統,到進階的伺服器設定都有深入淺出的介紹。筆者我就是從這本書開始我的伺服器之旅的!
其他還有說不盡的資訊通通都在網路上,多花點時間上網搜尋,或者直接進入網愛社面對面功力傳授,你的伺服器功力肯定都可以有大幅度進步!
小宅宅:『那一個首頁會在一台伺服器的哪裡呢?為什麼我安裝了Apache之後,別人連過來我的IP就會有首頁了?』
大宅宅:『其實那就是所謂設定Apache的部份了,這個問題如果弄懂了之後應該有助於大家對伺服器基礎的,且重要的認知!所以下面簡單介紹一下!』
以freeBSD為例,當你利用port安裝Apache後,再沒有更改安裝參數的情況之下,『你的首頁』是下面這個路徑這個檔案!
/usr/local/www/data-dist/index.html
只要你更改了那個檔案的內容,別人連過來你的電腦看到的首頁就會你改過的樣子了!
freeBSD之下安裝Apache的方法附於下:
# cd /usr/port/www/apache20
# make install clean
要進行這些步驟你還必須對unix-like系統有相當程度的認識,至少要知道什麼是超級使用者(root),還要可以將自己的權限提昇到超級使用者,才能正確的安裝Apache軟體。
Windows之下安裝了Apache之後,預設的首頁路徑大概如下
C:\Appserv\data\index.html
恩…其實我沒有在Windows之下安裝伺服器的經驗,上面那個路徑是我猜的………哈哈。
附帶一提,Windows上面的伺服器軟體最普遍被一般人使用的是Appserv,你可以用這個關鍵字直接去咕狗,你可以找到他的官方網站,並且下載該軟體,安裝方法應該也是所謂的『一直下一步』。這東西我沒安裝過,不提了。
有哪些伺服服務?
這裡簡單介紹幾種伺服服務。
→DHCP:設定一個網域的自動ip分配服務。
→DNS:將數字ip轉換為文字ip的網址服務。
→WWW:網頁服務。
→SAMBA:讓win的電腦可以存取unix的檔案。
→Mail:電子郵件服務
→Proxy:可以節省頻寬的網路服務。
以上的伺服器都可以在鳥網看到非常詳細的介紹。
什麼是PHP、HTML、BBS?
其實所有『你看到的』網頁都是html語法了,但是你看到的html語法可能是由php、cgi、JavaScript產生的,但是無論如何,那些程式都是經由你在瀏覽器上面送出的資訊,利用那些資訊運算出你要的資訊,製作成html語法傳給你的瀏覽器,瀏覽器再將那些html語法解釋出來,作成各種貼圖,文字效果,然後產生你看到的網頁!
現在的網頁幾乎都會把各種語言來拿綜合著用,例如我自己作過的類似youtube的影片播放網頁,裡面就有html和JavaScript!也就是在一份index.html裡面寫著html和JavaScript的語法。
php舉例說明;
echo Date( "D" ) ;
?>
上面三行php程式碼在有安裝php的伺服器中,會回應出當天的星期,例如如果你是禮拜二去瀏覽該網頁的,那麼,上面那三行php程式碼就會變成:
Tru
Tru這三個英文字!而你無法在瀏覽器上面看到Tru這三個英文字是原本寫上去的html語法,或者是php在伺服器上面運算出來的結果!
附帶一提,php是在伺服器上面運算,然後將運算出來的結果傳給瀏覽器,所以要能夠執行php語法的伺服器還必須安裝php程式,這樣才能正確執行php語法。php除了像上面那種Date函式之外,你還可以像C語言那樣撰寫迴圈,變數。
說到BBS,那可以算是中港台三地的網路應用神蹟了!因為台灣的網路速度普遍頻寬很低,所以可以高速作為交流的BBS平台相當受大學生族群的歡迎!而能夠把一台機器和程式的效能發揮的如此淋漓盡致,也堪稱是在逆境中求生存的最優異表現了!當大家利用PCman連上夢大、PTT,可以看到網址開頭的六個英文字是『telnet』,其實那就是BBS使用的通訊協定了,其實telnet原本是用來登入遠端機器作為遠端管理的工具,其畫面擷取如下。
在如何成為伺服器那邊說過了,伺服器會有一支程式來處理客戶端要求的資料,telnet就是那麼一支在處理使用者登入之後的程式!telnet程式將你的登入資訊和儲存在硬碟裡面的資料作比對,正確的話就讓你正確登入BBS,然後你看到的每一篇文章都是一個在硬碟上面的檔案,就如同Apache一樣,Apache有/usr/loacal/www/date-dist放置首頁,BBS也會有自己的檔案放置位址,一般BBS都會將主程式放置在/home/bbs/bin/裡面,通常這個位址裡面會有一個叫做bbsd的程式在處理你的登入資訊和各種要求,這隻bbsd就是telnet程式了!
附帶一提,bbsd可以理解為BBS Daemon,Daemon的意思是『在unix之下獨立運行的程式』。
另外,你還需要知道的是,BBS是最早也是最快速的『互動式表單系統』,web2.0起於各種互動式網頁的產生,大家可以在網頁論壇上面留下自己的意見,跟世界各地的網友互動,www利用html、php、MySQL處理各項資料,但是速度永遠比不上瞬間完成的BBS,但是若未來網路速度可以提升到全民光纖的時代,產生像BBS那樣快速方便好用的web服務是有可能的!
什麼是FTP?
比起前面的Apache、BBS,FTP真的是簡單太多了!長話短說,FTP就是一個可以登入遠端機器,利用FTP程式裡面的程式取回遠端電腦的檔案。
如同前面所說的任何服務一樣,FTP也會開啟一個通訊埠(通常是21)讓客戶端連進來,然後客戶端傳送要求資料的訊息,再來伺服器就把檔案送給客戶端。如此,就完成了FTP在做的事情了!
比較特別的是,FTP程式利用兩個通訊埠,port21是讓客戶端的登入資訊命令、移動到其他資料夾的命令、下載某檔案的命令通行的通訊埠,port20才是我們真正在傳輸檔案的port!至於為什麼會一次使用兩個port?這點我也不清楚,待查了………!
在unix-likeOS上面常用的ftp軟體很多種,我推薦pure-ftpd。因為他真的很單純,但是也不會單純到功能東缺稀少!使用的記憶體也非常少量!獨立運行也不曾掛掉。
什麼是PORT?
當我們連上某個網址的時候,例如,bbs.ncku.edu.tw,我們在PCman裡面輸入這個網址,不過,為什麼我們不會連到這個網址提供的其他服務(如果有的話),例如www或者ftp呢?
這就是port的功用了,我們在PCman裡面輸入的網址,PCman軟體會以預設的telnet通訊埠23作為溝通的管道,然後夢大伺服器上面在管理telnet的軟體會處理的訊號也就是從port23過來的資訊,所以如果你在PCman連到bbs.ccns.ncku.eud.tw:21的話,只會發生連不上主機的情況而已了!
各種服務都有制式化的port,稱之為
『well known port』
你可以直接上網查詢這個關鍵字,你可以看到
ftp:21
ssh:22
telnet:23
http:80
還有其他很多port都有規定,當然了,這些port都可以改,但是改了之後別人要進入你提供的服務就要再另外加上那些port才能使用你提供的服務了,例如如果你改了你的telnet通訊埠到408。那麼別人就要在網址後面加上:480,如『telnet://bbs.ccns.ncku.edu.tw:408』這樣才可以登入你的服務!
Windows VS UNIX
眾所皆知,以個人桌上型或者筆記型電腦來說,作業系統絕對是以Windows為大宗,不過,一旦提到伺服器這方面,如果你使用Windows作為你的OS的話,恩,那我會替你捏把冷汗………。
為什麼大家都用Windows作為個人電腦的作業系統,但是一旦當作伺服器的作業系統時,卻又敬而遠之呢?這邊,我簡單說明一下!
伺服器最重要的就是所謂的uptime,中文意思就是開機上線進行服務的時間,例如夢大之前常常當機,那夢大一年下來的uptime就不到99%了!一台標準的伺服器要可以做到有99%的上線時間,也就是一年中有三千一百二十二萬零六百四十分鐘必須是可以讓使用者連線上的,以另外一種說法來說,一年只能不在線上三十一萬五千三百六十分鐘,也就是八十七點六小時,也就是一年下來總和離線時間只能有三點六五天!但是這只是一般的標準,真正進行商業行為的網站對於uptime要求絕對比99%還要高出很多很多很多,甚至是100%。畢竟商業服務容不得任何時間讓客戶連不上網站阿!
總的來說,因為不能讓各種硬體或者軟體問題導致斷線,所以在硬體方面,幾乎所有大型伺服器都會有備援機,也就是兩台機器裡面的資料是一模一樣的,如果其中一台忽然硬體掛掉了,那麼另一台馬上接手繼續之前的服務,其中的間隙是使用者感覺不出來的。那麼,在軟體方面,因為Windows上面有各種亂七八糟的病毒肆虐,OS的記憶體也管理做的不好,一來無法防治病毒無情的惡搞,記憶體管理的不好也會讓開機時間和效能呈現負相關成長,開機越久,效能越低。
小宅宅:『病毒攻擊和記憶體管理不好的情形大概是什麼阿?很嚴重嗎?』
大宅宅:『病毒可以簡單的想成,你的電腦開了那些網頁服務之後,或許會因為OS軟體裡面某個通訊可以透過你已經開啟的服務,讓駭客傳送奇怪的資料導致OS將開不應該開啟的通訊埠打開,然後對方以這個通訊埠傳送命令過來,例如刪除windows底下所有D槽裡面的檔案這種指令,當然囉,這樣被搞過之後你的伺服器上得資料肯定跟你說拜拜了。
那麼記憶體管理的話,你可以回家打開你的Windows電腦,叫出你的windows工作管理員,切換到處理程序那個分頁,按下檢視…選擇欄位…把虛擬記憶體也勾選起來,你可以看到每一支程式總使用的記憶體量裡面,差不多會有30%~50%是放在虛擬記憶體上面的,而虛擬記憶體是在硬碟上面分割出來當作記憶體使用的東西,這部份詳談的話,是另一個故事了,跳過不提。你只要知道受限於硬碟傳送資料速度約為記憶體的萬分之一,所以虛擬記憶體會拖垮程式速度,而unix-like系統上面會優先使用實體記憶體,甚至把目前沒有實際使用到的記憶體快取起來,所以可以的對於網路上送來的要求,快速開啟一支對於該要求產生回應或者處理資料的程式』
通篇而論,想要有長時間上線,又擁有優異效能,unix-like是你的首選!
本篇文章立意主在釐清新手對於伺服器的概念,不包含建立伺服器的方法,因為建立伺服器的方法在網路上有太多太多文章你必須參考,那些文章都很棒,非看不可!
by magicallove
2008/8/12
一般人對伺服器的印象常常是『一個巨大的機房,裡面放著很多機器,很多線路,好像那種東西是一般大眾買不到的、很神秘的東西!』其實,完全不對!
在維基百科上面,伺服器的定義如下:『伺服器以硬體來說,通常是指那些具有較高計算能力,能夠提供給多個用戶使用的電腦主機。 伺服器與個人電腦的不同點太多了,例如個人電腦在同一個時間通常只為一個使用者服務。而伺服器同時給很多人使用。』
不過這已經是舊時代的想法了,以現在(20080810)市面上的電腦來說,一個一萬二的主機,不含螢幕價錢,其實也可以勝任一個不錯的伺服器。大約可以給兩百人同時瀏覽架設於其上的網頁沒有問題!有人說,電腦硬體就像一個軀殼,軟體就像思想或靈魂,硬體的效能決定了軀殼強壯與否,而軟體決定了CPU這個軀殼的身份以及行為。
伺服器就硬體上而言我們期待它是『夠強壯』的軀殼好勝任繁重的工作,並搭配合適的軟體讓它扮演特定角色;舉例來說,它會扮演成客服人員、接洽窗口、銀行行員、行政人員或是銷售員等各種角色,就像各種類型的伺服器軟體所提供的服務。
而使用者要使用這些服務也會有不同的方法,像有些單位會要求你領取號碼牌等候或是按照某些行政流程處理事項等,因此使用者使用特定服務時也有對應的客戶端程式來存取伺服器提供的服務。
那究竟伺服器是怎麼辦到的呢?遊戲的伺服器、MSN的伺服器、網頁的伺服器、FTP的伺服器、※夢之大地※的伺服器?這些可以讓我們連上去使用的服務,例如,你可以連上魔獸世界進行你的副本,你可以連上MSN取得你的朋友清單,可以連上GOOGLE進行你要的資料搜尋,可以連上夢之大地去course版找到你要的課的建議!這些服務是怎麼辦到的呢?
其實,仔細分析一下,上述的那些動作都可以分解為
『①利用某軟體,②然後去某處,③送出並傳回某些資料』
其中的第一項這個動作就是在你的電腦上面,也就是在所謂的客戶端上面完成,例如:
① 你開啟你安裝的魔獸世界執行檔
下一個步驟是在遠端的伺服器上面完成的,遠端的伺服器機器讓你的帳號登入,並且將你的角色資料從硬碟中讀到記憶體裡面,例如:
② 連去魔獸世界的伺服器
最後一個步驟從遠端伺服器開始,終於客戶端,也就是你自己的個人電腦。
③你送出你的帳密、或者你的角色移動的方向給魔獸伺服器
魔獸的伺服器會傳回帳密是否正確,或者你的角色移動之後的場景樣式給你的電腦,接著你的電腦上面的魔獸執行檔就會把那些電子資訊轉換成螢幕上的楊子給你看到了!又或者以網頁來說。
① 你打開你安裝的火狐瀏覽器
② 連去咕狗的首頁
③ 送出你搜尋的關鍵字,然後咕狗回傳給你搜尋的結果
上面所述流程就是所有伺服器的運作模式了!相信你所看到的!這絕對是『所有』伺服器的運作模式!任何伺服器提供的服務絕對都可以分解成以上動作,不過你必須知道,上面那些分解是為了讓大家容易瞭解伺服器做的事情,而正常我們在架設伺服器,對於網路的狀況作分析時,並不是像那樣分析的。
這些伺服器其實就只是一台電腦,一台可以開打他的網路某個通訊埠,讓別人的電腦可以透過這個通訊埠來取得資料的電腦!
具上所述,只要你的電腦可以連上網路,然後裝上可以回應出別人從網路上送出的要求的軟體!那麼,那就是一台俗稱的伺服器!
如何成為伺服器!
上面說過了!只要你的電腦可以回應給其他電腦正確的資訊時,那就是一台伺服器!
舉例來說:你想要一台網頁伺服器該怎麼作呢?
首先,你必須知道哪些軟體可以回應別人的電腦發出的HTTP協定要求,然後安裝他,並且開啟該軟體會使用到的通訊埠。真的!這樣就搞定了!當然了,只有作這樣的話其實並沒有做好一個伺服器該有的規劃,一個好的伺服器必須把硬碟的分割包含檔案分配做好,平均分散每顆硬碟的使用率,做好定期備份重要檔案,設置防火牆以免網頁被駭。即使你不去作這些規劃,你的伺服器依然可以運作,而且運氣好的話甚至可以運作得很順利(當然這不太可能…)。
至於,什麼是可以回應HTTP通訊協定的軟體?這本講義可以簡單的給你一個答案『Apache』。他唸作『阿帕契』
在Debain系統下你可以利用以下指令安裝Apache
apt-get install apache2
等系統將apache2下載並安裝完畢之後。基本上,你的網頁伺服器就完成了。
詳細的安裝和設定Apache,這就不在本講義的範圍之內了,不過我可以告訴你幾個地方,讓你有跡可循。
● 鳥哥的私房菜。鳥哥是成大的環工學長喔!鳥網裡面會告訴你,如何安裝linux(通常我們用這個os架站),如何安裝Apache和其他伺服軟體,例如電子郵件、FTP、DNS…。而且都會寫上非常詳細的各種服務的觀念!非常建議閱讀!
● Study-Area。這個網站裡面最富盛名的應該就是網中人了(netman),這個站裡面除了對於linux系統有非常多的介紹之外,也有寫到BSD系統的freeBSD。那也是一個非常棒的伺服器OS選擇!夢大就是運行在freeBSD上面的呢!
● FreeBSD架設管理與應用。其實這是一本書啦,這本書成大總圖有,不過全書內容都在作者佛心的分享之下統統都上線了!講義中我偏偏不俗套的附上網址,反正附了你們也不可能一個字一個字打上網址列,相信我,直接咕狗『FreeBSD架設管理與應用』比打網址快多了!這本書應該是最適合新手上路的一本書,因為他從基礎的安裝作業系統,到進階的伺服器設定都有深入淺出的介紹。筆者我就是從這本書開始我的伺服器之旅的!
其他還有說不盡的資訊通通都在網路上,多花點時間上網搜尋,或者直接進入網愛社面對面功力傳授,你的伺服器功力肯定都可以有大幅度進步!
小宅宅:『那一個首頁會在一台伺服器的哪裡呢?為什麼我安裝了Apache之後,別人連過來我的IP就會有首頁了?』
大宅宅:『其實那就是所謂設定Apache的部份了,這個問題如果弄懂了之後應該有助於大家對伺服器基礎的,且重要的認知!所以下面簡單介紹一下!』
以freeBSD為例,當你利用port安裝Apache後,再沒有更改安裝參數的情況之下,『你的首頁』是下面這個路徑這個檔案!
/usr/local/www/data-dist/index.html
只要你更改了那個檔案的內容,別人連過來你的電腦看到的首頁就會你改過的樣子了!
freeBSD之下安裝Apache的方法附於下:
# cd /usr/port/www/apache20
# make install clean
要進行這些步驟你還必須對unix-like系統有相當程度的認識,至少要知道什麼是超級使用者(root),還要可以將自己的權限提昇到超級使用者,才能正確的安裝Apache軟體。
Windows之下安裝了Apache之後,預設的首頁路徑大概如下
C:\Appserv\data\index.html
恩…其實我沒有在Windows之下安裝伺服器的經驗,上面那個路徑是我猜的………哈哈。
附帶一提,Windows上面的伺服器軟體最普遍被一般人使用的是Appserv,你可以用這個關鍵字直接去咕狗,你可以找到他的官方網站,並且下載該軟體,安裝方法應該也是所謂的『一直下一步』。這東西我沒安裝過,不提了。
有哪些伺服服務?
這裡簡單介紹幾種伺服服務。
→DHCP:設定一個網域的自動ip分配服務。
→DNS:將數字ip轉換為文字ip的網址服務。
→WWW:網頁服務。
→SAMBA:讓win的電腦可以存取unix的檔案。
→Mail:電子郵件服務
→Proxy:可以節省頻寬的網路服務。
以上的伺服器都可以在鳥網看到非常詳細的介紹。
什麼是PHP、HTML、BBS?
其實所有『你看到的』網頁都是html語法了,但是你看到的html語法可能是由php、cgi、JavaScript產生的,但是無論如何,那些程式都是經由你在瀏覽器上面送出的資訊,利用那些資訊運算出你要的資訊,製作成html語法傳給你的瀏覽器,瀏覽器再將那些html語法解釋出來,作成各種貼圖,文字效果,然後產生你看到的網頁!
現在的網頁幾乎都會把各種語言來拿綜合著用,例如我自己作過的類似youtube的影片播放網頁,裡面就有html和JavaScript!也就是在一份index.html裡面寫著html和JavaScript的語法。
php舉例說明;
echo Date( "D" ) ;
?>
上面三行php程式碼在有安裝php的伺服器中,會回應出當天的星期,例如如果你是禮拜二去瀏覽該網頁的,那麼,上面那三行php程式碼就會變成:
Tru
Tru這三個英文字!而你無法在瀏覽器上面看到Tru這三個英文字是原本寫上去的html語法,或者是php在伺服器上面運算出來的結果!
附帶一提,php是在伺服器上面運算,然後將運算出來的結果傳給瀏覽器,所以要能夠執行php語法的伺服器還必須安裝php程式,這樣才能正確執行php語法。php除了像上面那種Date函式之外,你還可以像C語言那樣撰寫迴圈,變數。
說到BBS,那可以算是中港台三地的網路應用神蹟了!因為台灣的網路速度普遍頻寬很低,所以可以高速作為交流的BBS平台相當受大學生族群的歡迎!而能夠把一台機器和程式的效能發揮的如此淋漓盡致,也堪稱是在逆境中求生存的最優異表現了!當大家利用PCman連上夢大、PTT,可以看到網址開頭的六個英文字是『telnet』,其實那就是BBS使用的通訊協定了,其實telnet原本是用來登入遠端機器作為遠端管理的工具,其畫面擷取如下。
在如何成為伺服器那邊說過了,伺服器會有一支程式來處理客戶端要求的資料,telnet就是那麼一支在處理使用者登入之後的程式!telnet程式將你的登入資訊和儲存在硬碟裡面的資料作比對,正確的話就讓你正確登入BBS,然後你看到的每一篇文章都是一個在硬碟上面的檔案,就如同Apache一樣,Apache有/usr/loacal/www/date-dist放置首頁,BBS也會有自己的檔案放置位址,一般BBS都會將主程式放置在/home/bbs/bin/裡面,通常這個位址裡面會有一個叫做bbsd的程式在處理你的登入資訊和各種要求,這隻bbsd就是telnet程式了!
附帶一提,bbsd可以理解為BBS Daemon,Daemon的意思是『在unix之下獨立運行的程式』。
另外,你還需要知道的是,BBS是最早也是最快速的『互動式表單系統』,web2.0起於各種互動式網頁的產生,大家可以在網頁論壇上面留下自己的意見,跟世界各地的網友互動,www利用html、php、MySQL處理各項資料,但是速度永遠比不上瞬間完成的BBS,但是若未來網路速度可以提升到全民光纖的時代,產生像BBS那樣快速方便好用的web服務是有可能的!
什麼是FTP?
比起前面的Apache、BBS,FTP真的是簡單太多了!長話短說,FTP就是一個可以登入遠端機器,利用FTP程式裡面的程式取回遠端電腦的檔案。
如同前面所說的任何服務一樣,FTP也會開啟一個通訊埠(通常是21)讓客戶端連進來,然後客戶端傳送要求資料的訊息,再來伺服器就把檔案送給客戶端。如此,就完成了FTP在做的事情了!
比較特別的是,FTP程式利用兩個通訊埠,port21是讓客戶端的登入資訊命令、移動到其他資料夾的命令、下載某檔案的命令通行的通訊埠,port20才是我們真正在傳輸檔案的port!至於為什麼會一次使用兩個port?這點我也不清楚,待查了………!
在unix-likeOS上面常用的ftp軟體很多種,我推薦pure-ftpd。因為他真的很單純,但是也不會單純到功能東缺稀少!使用的記憶體也非常少量!獨立運行也不曾掛掉。
什麼是PORT?
當我們連上某個網址的時候,例如,bbs.ncku.edu.tw,我們在PCman裡面輸入這個網址,不過,為什麼我們不會連到這個網址提供的其他服務(如果有的話),例如www或者ftp呢?
這就是port的功用了,我們在PCman裡面輸入的網址,PCman軟體會以預設的telnet通訊埠23作為溝通的管道,然後夢大伺服器上面在管理telnet的軟體會處理的訊號也就是從port23過來的資訊,所以如果你在PCman連到bbs.ccns.ncku.eud.tw:21的話,只會發生連不上主機的情況而已了!
各種服務都有制式化的port,稱之為
『well known port』
你可以直接上網查詢這個關鍵字,你可以看到
ftp:21
ssh:22
telnet:23
http:80
還有其他很多port都有規定,當然了,這些port都可以改,但是改了之後別人要進入你提供的服務就要再另外加上那些port才能使用你提供的服務了,例如如果你改了你的telnet通訊埠到408。那麼別人就要在網址後面加上:480,如『telnet://bbs.ccns.ncku.edu.tw:408』這樣才可以登入你的服務!
Windows VS UNIX
眾所皆知,以個人桌上型或者筆記型電腦來說,作業系統絕對是以Windows為大宗,不過,一旦提到伺服器這方面,如果你使用Windows作為你的OS的話,恩,那我會替你捏把冷汗………。
為什麼大家都用Windows作為個人電腦的作業系統,但是一旦當作伺服器的作業系統時,卻又敬而遠之呢?這邊,我簡單說明一下!
伺服器最重要的就是所謂的uptime,中文意思就是開機上線進行服務的時間,例如夢大之前常常當機,那夢大一年下來的uptime就不到99%了!一台標準的伺服器要可以做到有99%的上線時間,也就是一年中有三千一百二十二萬零六百四十分鐘必須是可以讓使用者連線上的,以另外一種說法來說,一年只能不在線上三十一萬五千三百六十分鐘,也就是八十七點六小時,也就是一年下來總和離線時間只能有三點六五天!但是這只是一般的標準,真正進行商業行為的網站對於uptime要求絕對比99%還要高出很多很多很多,甚至是100%。畢竟商業服務容不得任何時間讓客戶連不上網站阿!
總的來說,因為不能讓各種硬體或者軟體問題導致斷線,所以在硬體方面,幾乎所有大型伺服器都會有備援機,也就是兩台機器裡面的資料是一模一樣的,如果其中一台忽然硬體掛掉了,那麼另一台馬上接手繼續之前的服務,其中的間隙是使用者感覺不出來的。那麼,在軟體方面,因為Windows上面有各種亂七八糟的病毒肆虐,OS的記憶體也管理做的不好,一來無法防治病毒無情的惡搞,記憶體管理的不好也會讓開機時間和效能呈現負相關成長,開機越久,效能越低。
小宅宅:『病毒攻擊和記憶體管理不好的情形大概是什麼阿?很嚴重嗎?』
大宅宅:『病毒可以簡單的想成,你的電腦開了那些網頁服務之後,或許會因為OS軟體裡面某個通訊可以透過你已經開啟的服務,讓駭客傳送奇怪的資料導致OS將開不應該開啟的通訊埠打開,然後對方以這個通訊埠傳送命令過來,例如刪除windows底下所有D槽裡面的檔案這種指令,當然囉,這樣被搞過之後你的伺服器上得資料肯定跟你說拜拜了。
那麼記憶體管理的話,你可以回家打開你的Windows電腦,叫出你的windows工作管理員,切換到處理程序那個分頁,按下檢視…選擇欄位…把虛擬記憶體也勾選起來,你可以看到每一支程式總使用的記憶體量裡面,差不多會有30%~50%是放在虛擬記憶體上面的,而虛擬記憶體是在硬碟上面分割出來當作記憶體使用的東西,這部份詳談的話,是另一個故事了,跳過不提。你只要知道受限於硬碟傳送資料速度約為記憶體的萬分之一,所以虛擬記憶體會拖垮程式速度,而unix-like系統上面會優先使用實體記憶體,甚至把目前沒有實際使用到的記憶體快取起來,所以可以的對於網路上送來的要求,快速開啟一支對於該要求產生回應或者處理資料的程式』
通篇而論,想要有長時間上線,又擁有優異效能,unix-like是你的首選!
本篇文章立意主在釐清新手對於伺服器的概念,不包含建立伺服器的方法,因為建立伺服器的方法在網路上有太多太多文章你必須參考,那些文章都很棒,非看不可!
by magicallove
2008/8/12
訂閱:
文章 (Atom)