Developer 寫完 Code,然後佈署至 IIS。ASP.NET Code / ASP.NET MVC Code 必須運作在 IIS 之下,這沒有問題。但 Developer 是否需要去了解 IIS 的運作及設定?還是另有 IT Pro 的人去進行管理?(見Plurk討論)
以上問題,見人見知,或是見公司見知。像我就是校長兼打鐘,我個人的見解是,Developer 雖然不用去非常了解整個 IIS 運作設定,但對於 IIS 還是要有基礎,有時問題不在 Code 上面,但 Developer 只會往 Code 上去找問題,到是常見的情況。
以下為看完「邊做邊學IIS 7.5系列」 心得筆記。
講師:王寧疆 老師
投影片下載:IIS 7.5 系列教學
IIS 7.5 系列教學影片(1) 筆記
了解為什麼要改使用 IIS 7.5,IIS 7.5 與 IIS 6 的差異。反正改用 IIS 7.5 就對了,就算在不支援 IIS 7.5 的環境,也可以改使用 IIS 7.5 Express 來測試,例如,在 Visual Studio 2008 / Visual Studio 2010 原本的【ASP.NET 程式開發伺服器】是 IIS 6.0 架構,就應該改使用 IIS 7.5 Express 來執行及測試。IIS 7.5 系列教學影片(2) 筆記
此篇,你可以學習到以下主題:- appcmd
讓我們可以透過下指令方式來管理 IIS。
在【命令提示字元】(需系統管理員帳戶)請進入 cd %windir%\system32\inetsrv ,輸入 【appcmd.exe】及相關參數即可。 - URL Rewrite
讓我們可以改寫網址規則,例如,原始為 Order.aspx?CusId=ADSF,改寫為 Order/CusId/ADSF。 - IIS 7.5 Express 介紹
- 預設文件
了解如何設定預設文件。 - 功能委派
讓我們的伺服器管理員,可以開放或關閉特定功能給網站或其他人。
設定有三種:
【未委派】:等於不能讀取/寫入。
【讀取】:只能讀取。
【讀取/寫入】:可讀取與寫入。除此項之外,未委派與讀取如有寫入動作,都會產生錯誤。 - Web Deploy
可使用【IIS 匯出/匯入】與【MsDeploy.exe】,
【MsDeploy.exe】 目前我電腦中已經有V3:
V2 Path:C:\Program Files\IIS\Microsoft Web Deploy
V3 Path: C:\Program Files\IIS\Microsoft Web Deploy V3
IIS 7.5 系列教學影片(3) 筆記
這一篇我們習學到如何利用 IIS 來做活動分析。這部分的內容,我覺得 Developer 應該要去好好了解,例如,使用者反應網站變慢,怎麼查?查程式?開 Visual Studio 查嗎?查資料庫?開 SSMS 查詢嗎?我們應該學習更有效的方法來處理,而且是可以提出數據的處理。這篇給了我們一個很好的方向。
IIS Log 可以透過 Log Parse 或 Log parser Lizard 來幫忙分析。
IIS 7.5 系列教學影片(4) 筆記
第四部談 IIS 與安全設定。我們在撰寫程式時,都會進行許多安全方面的工作,從最前的表單驗證、SQL Injection、XSS…各式各樣的防護工作,但怎麼不會去想如何在【第一關】去進行防護,即一個 Request 一進來第一關一定先碰到 IIS,有了 IIS 確認 Request 之後確認之後,才有後續的動作。
這有點像 Firewall (防火牆) 的工作內容,可以把 IIS 當成進行我們程式前的 Firewall,讓我們的程式可以在更安全的環境下運作。
- 要求篩選
【副檔名】:以副檔名進行篩選,什麼可執行,什麼不可執行。
【規則】:進行Scan URL及Query String來進行規則設定。
【隱藏區段】:什麼檔案或目錄是不可見的,例如,web.config。
【URL】:進行URL的 Allow / Deny 的設定。
【HTTP 指令動詞】:進行 HTTP 指令動詞的 Allow / Deny 設定。
【標頭】:可新增標頭及大小設定。
【查詢字串】:設定 Allow / Deny 的 Query String 裡的字串,例如,影片中提到的「..」或SQL Injection常用「'」。
最後一個【查詢字串】我認為是很棒的內容,我們可以整理出透過Query String來攻擊的字串資料,然後加入此【查詢字串】裡的 Deny 清單內,這樣可以預防或減低程式上的不完美,例如,一些 Novice Programmer 就是喜歡用「接字串」來組SQL,所帶來的攻擊風險。 - IP 位址及網域限制
只有要【資料庫】的網站,應該都有一個管理後台,此管理後台就非常合適在此處進行設定,只限定特定 IP 位址或網域來存取。當然,私有不對外公開的網站,也適合在此處進行設定。 - Dynamic IP Restriction
此擴充可防止被 DoS 或暴力攻擊。透過限制單一 IP 【最大同時連線數】與【一段時間內的最大連線次數】來預防被攻擊。
IIS 7.5 系列教學影片(5) 筆記
這部分討效能,我們要如何增加網站的執行效能。- Application Request Routing
也可以參考這篇「如何利用 IIS7 的 ARR 模組實做 Reverse Proxy 機制」。簡單說是一個 Proxy-based 來實作負載均衡的功能,讓我們可以透過多個 Web 來提供服務。 - 壓縮
靜態壓縮及動態壓縮。 - 快取
快取是很常拿來增進效能的方法,這部分應多加了解。
另外,此篇也討論如何找出瓶頸,以下面兩個方向來找:
- 找出前 N 筆速度最慢的網頁
- 找出前 N 筆最常被讀取的網頁
找出後,列為最優先處理的項目,應該就可以提升不少效能。
沒有留言:
張貼留言
感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。