Ⅰ 如何用用命令行開啟nodejs搭建web伺服器
首先,需要安裝nodejs,這個可以去官網下載,目前我本地安裝的v0.12版本。
安裝完成後可以通過命令行測試安裝是否成功,輸入:node -v,應該會顯示當前安裝node版本號。
本文中用到的模塊,都是nodejs核心模塊,不需要從外部下載,如果有需要,可以使用以下命令安裝:npm install xxx。
開始
下一步,新建js文件,可以命名為server.js,代碼如下:
var http = require('http');
var url = require('url');
var path = require('path');
var fs = require('fs');
var dir, arg = process.argv[2] || ''; // 命令行第三個參數,用來接收目錄,可為空,相對當前server.js文件的目錄名稱
// 比如使用命令 node server debug,意思就是debug文件夾與server.js文件同級
// 且你想以debug文件夾啟動web服務
http.createServer(function (req, res) {
var pathname = __dirname + url.parse(req.url).pathname;
dir = dir ? dir : pathname; // 記住dir(目錄)
pathname = dir ? pathname.replace(dir, dir + arg + '/') : pathname; // 替換文件靜態路徑
if (path.extname(pathname) == "") {
pathname += "/";
}
if (pathname.charAt(pathname.length - 1) == "穗敏侍/") {
pathname += "index.html"; // 入口文件,此處默認index.html
}
fs.exists(pathname, function (exists) {
if (exists) {
switch (path.extname(pathname)) {
case ".html":
res.writeHead(200, {"Content-Type": "text/html"});
break;
case ".js":
res.writeHead(200, {"Content-Type": "text/javascript"});
break;
case ".css":
res.writeHead(200, {"Content-Type": "text/css"});
break;
case ".gif":
res.writeHead(200, {"Content-Type": "image/gif"});
break;
case ".jpg":
res.writeHead(200, {"Content-Type": "image/jpeg"});
break;
case ".png":
res.writeHead(200, {"Content-Type": "image/png"});
break;
default:
res.writeHead(200, {"Content-Type"拿弊: "application/octet-stream"});
}
// res可以自己添加信息來簡單交互 比如可以修改點header信息 或者修改返回的資源數據
fs.readFile(pathname, function (err, data) {
res.end(data);
});
}
else {
res.writeHead(404, {"Content-Type": "text/html"});
res.end("<h1>404 Not Found</h1>");
}
});
}).listen(8085, "127.0.0.5"); // 伺服器埠
console.log("server running at http://127.0.0.5:8085/");
啟動
當node安裝完成及上述server.js文件也新建好之後。將其與你要訪問的文件夾放在一起,可以放同層或者直接下猜吵層。比如,如果你要訪問d:\test\debug文件夾。
你可以先將當前文件放入同層或者直接下,然後輸入如下命令啟動web服務:
先打開`cmd`,進入server文件所在目錄,比如是`test`目錄;
然後輸入:`node server debug`(同層), 或者`node server`(子層),
此時會提示`server running at http://127.0.0.5:8085/`, 表示啟動服務成功;
最後打開瀏覽器,進入:`127.0.0.5:8085`,即可訪問此資源。
Ⅱ 如何在Ubuntu 16.04上使用Nginx的OpenResty Web框架
第1步 - 下載OpenResty的源代碼和依賴關系
在本節中,我們將從源代碼安裝OpenResty。
首先,從OpenResty網站的下載頁面找到最新的OpenResty源代碼版本。下載tarball,確保如果更改了版本號,請使用最新版本號。
wget https://openresty.org/download/openresty-1.11.2.2.tar.gz
下載PGP密鑰文件,以便我們可以驗證文件的內容。
wget https://openresty.org/download/openresty-1.11.2.2.tar.gz.asc
接下來,我們需要添加作者的公共密鑰,如下載頁面上所列。在撰寫本文時,這是公鑰A0E98066 。但是,請檢查它是否已更改;它被列在同一下載頁面上。
gpg --keyserver pgpkeys.mit.e --recv-key A0E98066
第2步 - 安裝OpenResty
我們將配置OpenResty與PCRE正則表達式和IPv6支持。我們還將通過提供-j2標志來並行化構建過程的一部分,這將告訴make 2個作業可以同時運行。此命令將主要測試所有依賴項是否可用於您的系統,並收集將由構建步驟稍後使用的信息。它也已經構建了一些依賴項,如LuaJIT。./configure -j2 --with-pcre-jit --with-ipv6
然後,您可以通過提供-j2並行度標志來構建OpenResty。這將編譯OpenResty本身。make -j2
最後,您可以安裝OpenResty。使用sudo確保所有文件可以復制到系統上的正確位置,以便OpenResty可以在運行時找到它們。sudo make install
您需要在防火牆中允許HTTP連接才能使Web伺服器正常工作。sudo ufw allow http
您也可以選擇允許HTTPS與sudo ufw allow https如果你要使用它。您可以通過檢查防火牆的狀態來驗證防火牆的更改。sudo ufw status
您應該看到顯示的輸出中允許HTTP流量(埠80 ),以及如果您添加它的HTTPS(埠443 )。
您現在可以檢查安裝是否有效。首先,啟動OpenResty。sudo /usr/local/openresty/bin/openresty
如果命令成功,它將立即完成而不輸出文本。在這種情況下,您可以在瀏覽器中訪問http:// your_server_ip 。 你會看到一個頁面,說歡迎來到OpenResty!確認它已完全安裝和工作。
您現在可以停止OpenResty伺服器。sudo /usr/local/openresty/bin/openresty -s quit
OpenResty已安裝,但您仍需要配置OpenResty在啟動時運行,所以伺服器不必手動啟動。
第3步 - 將OpenResty設置為服務
在這里,我們將OpenResty設置為一個服務,所以它在啟動時自動啟動。我們將使用systemd init服務。 您可以閱讀此systemd基礎教程了解更多信息,以及本單元文件教程 ,了解單元文件的具體信息。
首先使用nano或您喜歡的文本編輯器創建一個新的systemd文件。sudo nano /etc/systemd/system/openresty.service
對於本教程,我們將從全新安裝中復制默認的Nginx systemd文件,並針對OpenResty進行修改。
第4步 - 配置OpenResty
要配置OpenResty,我們使用默認的Nginx配置作為參考,以便它大部分匹配你可能會熟悉的。 首先,再次打開OpenResty配置文件: sudo nano /usr/local/openresty/nginx/conf/nginx.conf
這一次,我們將修改http塊並將此http塊中的server塊移動到一個新文件以具有更好的結構。 首先,找到http {行,並刪除之後的一切,除了最後一行與對應的} 。
當前/usr/local/openresty/nginx/conf/nginx.conf
user www-data;worker_processes auto;pid /run/openresty.pid;events {
worker_connections 1024;}http {
include mime.types;
default_type application/octet-stream;
. . .}
然後,將以下內容復制到http塊中,以便整個文件看起來像這樣。我們將一次過一個更改。
/usr/local/openresty/nginx/conf/nginx.conf
user www-data;worker_processes auto;pid /run/openresty.pid;events {
worker_connections 1024;}http {
include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/openresty/access.log;
error_log /var/log/openresty/error.log;
gzip on;
gzip_disable "msie6";
include ../sites/*;
}
保存並關閉文件。 我們對默認文件所做的更改是:
取消tcp_nopush on; ,它告訴OpenResty只發送完整的數據包。 當使用sendfile選項時,此選項很有用,這將允許OpenResty優化將靜態文件發送到客戶端。
添加tcp_nodelay on; 。 此選項將嘗試盡快發送數據包,這可能看起來與上述選項相反,但它在不同的時間使用。 tcp_nodelay僅在對HTTP請求使用keepalive選項時使用,這是通過Web瀏覽器連接到Web伺服器,這將避免每次請求時啟動HTTP連接的開銷。
添加和修改ssl_protocols和ssl_prefer_server_ciphers行。這些選項配置OpenResty的SSL選項。我們刪除了易受已知的HTTPS攻擊的舊協議,例如POODLE攻擊。
添加access_log和error_log行,它們配置Web伺服器的日誌位置。 我們將日誌存儲在上一步中創建的/var/log/openresty目錄中。
取消注釋gzip on並添加gzip_disable "msie6" 。這些選項將配置GZIP,這將壓縮網頁,以便有更少的數據傳輸。我們還添加了最後一個選項,因為Internet Explorer 6(及更早版本)並不總是正確處理GZIP內容。
添加include ../sites/*; ,它告訴OpenResty在/usr/local/openresty/nginx/sites目錄中查找額外的配置文件,稍後我們將創建它。
刪除所有server塊,我們將在此步驟中稍後重新定位到新文件。
- 接下來,創建我們在include行中指定的新sites目錄。 sudo mkdir /usr/local/openresty/nginx/sites
- 創建default網站。 sudo nano /usr/local/openresty/nginx/sites/default.conf
- 在此新文件中添加以下內容。這是從nginx.conf重新定位原始伺服器塊,但有更多細節的內聯注釋。
- server {
- # Listen on port 80.
- listen 80 default_server;
- listen [::]:80 default_server;
- # The document root.
- root /usr/local/openresty/nginx/html/default;
- # Add index.php if you are using PHP.
- index index.html index.htm;
- # The server name, which isn't relevant in this case, because we only have one.
- server_name _;
- # When we try to access this site...
- location / {
- # ... first attempt to serve request as file, then as a directory,
- # then fall back to displaying a 404.
- try_files $uri $uri/ =404;
- }
- # Redirect server error pages to the static page /50x.html.
- error_page 500 502 503 504 /50x.html;
- location = /50x.html {
- root /usr/local/openresty/nginx/html;
- }}
- 保存並關閉文件。 現在,為此網站創建一個新目錄。 sudo mkdir /usr/local/openresty/nginx/html/default
- 然後將原始index.html從其原始位置移動到新目錄。 sudo mv /usr/local/openresty/nginx/html/index.html /usr/local/openresty/nginx/html/default
- 最後,重新啟動OpenResty以使用此新站點。 sudo systemctl restart openresty
- 您現在可以再次訪問http:// your_server_ip ,並查看與之前相同的網頁。 現在OpenResty是完全配置的,我們可以嘗試一些由OpenResty介紹的,在Nginx默認情況下不可用的功能。
- 在本節中,我們將看看OpenResty添加的不同模塊的組合,這些模塊都存在以適應Lua腳本。我們將在整個步驟中/usr/local/openresty/nginx/sites/default.conf /usr/local/openresty/nginx/sites/default.conf,因此首先打開它。 sudo nano /usr/local/openresty/nginx/sites/default.conf
- 首先,我們將看一下content_by_lua_block配置選項。 從下面的示例配置中復制location塊,並將其添加到server塊中,位於兩個現有location塊下面。
- server {
- . . .
- location /example {
- default_type 'text/plain';
- content_by_lua_block {
- ngx.say('Hello, Sammy!')
- }
- }}
- 保存並關閉文件,然後重新載入配置。 sudo systemctl reload openresty
- 如果您http:// your_server_ip /example訪問http:// your_server_ip /example ,您會看到一個http:// your_server_ip /example 您好,Sammy的頁面! 。讓我們解釋這是如何工作的。 content_by_lua_block配置指令執行其中的所有內容作為Lua代碼。 在這里,我們使用Lua函數ngx.say來列印消息Hello,Sammy!到頁面。 對於另一個示例,將location /example塊的內容替換為:
- server {
- . . .
- location /example {
- default_type 'text/plain';
- content_by_lua_file /usr/local/openresty/nginx/html/default/index.lua;
- }}
- content_by_lua_file從外部文件載入Lua內容,所以讓我們創建上面指定的內容: /usr/local/openresty/nginx/html/default/index.lua 。 sudo nano /usr/local/openresty/nginx/html/default/index.lua
- 將以下內容添加到文件,然後保存並將其關閉。
- local name = ngx.var.arg_name or "Anonymous"ngx.say("Hello, ", name, "!")
- 這是一個簡單的Lua,它讀取URL中的查詢參數, name並自定義問候消息。如果沒有傳遞參數,則使用「匿名」。 再次重新載入配置。 sudo systemctl reload openresty
- 現在,在瀏覽器中訪問http:// your_server_ip /example?name= Sammy 。 這將顯示你好,Sammy! 。 您可以更改name查詢參數,或完全忽略它。 Hello, Sammy!
- 您還可以更改name查詢參數以顯示任何其他名稱。 警告:請勿將您要載入的Lua文件從Web訪問到的位置。如果這樣做,如果有人訪問此文件,則可能會包含應用程序代碼。將文件放在文檔根目錄之外,例如,將文檔根目錄更改為/usr/local/openresty/nginx/html/default/public ,並將Lua文件放在其上一個目錄。
/usr/local/openresty/nginx/sites/default.conf
第5步 - 使用OpenResty Lua模塊
/usr/local/openresty/nginx/sites/default.conf content_by_lua_block示例
/usr/local/openresty/nginx/sites/default.conf content_by_lua_file示例
/usr/local/openresty/nginx/html/default/index.lua
Ⅲ IIS伺服器與web.config配置優化指南
修改IIS最大工作進程數 a 請考慮以下幾點 每一個工作進程都會消耗系統資源和CPU佔用率 太多的工作進程會導致系統資源和CPU利用率的急劇消耗 每一個工作進程都具有自己的狀態數據 如果Web應用程序依賴於工作進程保存狀態數據 那麼可能不支持使用多個工作進程 成資源競爭 讓多個工作進程運行同一個應用程序會造成資源競爭 b 修改ISS最大工作進程數提高該應用程序池處理請求的性能 在IIS 的Web園(Web Garden)中 指定用於某個應用程序池的工作進程的數量就可以提高該應用程序池處理請求的性能 當伺服器的負載較小 不需要額外的工作進程時 IIS 在一定的時間後(默認 分鍾 可配置)自動縮減實際的工作進程數量 如果負載變大 需要額外的工作進程 IIS 再次增加工作進程數量 這一切操作都自動進行 不需要管理員干預 修改方法如下 修改伺服器 net framework的machine config的配置 目錄 C:WINDOWSMicrosoft NETFramework v CONFIGmachine config 將其中的「processModel」節點的「allowDefinition」值設置為「Everywhere」 修改伺服器中的iis最大工作進程數: 方法 右擊iis應用程序池 > 屬性 > 「性能」選項卡 > web園 > 最大工作進程數 注 經測試驗證 伺服器為 ( * )核 G內存時 設置為 性能最優 (PS: processModel 元素(ASP NET 設置架構) 元素配置用於伺服器(包括伺服器上的所有 ASP NET 應用程序)的處理模型 因此 processModel 設置只能放在 Machine config 文件中 而且不能被任何 Web config 文件中的設置重寫 ) 取消IIS的web訪問記錄 a 關閉IIS訪問記錄可以提升web性能 IIS 默認開啟對於web的IIS訪問記錄 當開啟記錄功能後 IIS會事無巨細地忠實記錄所有的IIS訪問記錄 這些記錄文件的內容是非常龐雜的 比如訪問時間 客戶端IP 從哪個鏈接訪問 Cookies等 另外還包括 Method(方法) UserAgent(用戶代理)等 這些記錄不但佔用大量的磁碟空間還大大地影響了web伺服器的性能 有人做過評測 停止IIS訪問記錄可以提升 %到 %的web性能 方法 打開IIS管理器 定位到具體的web站點 右鍵點擊選擇「屬性」 在「主目錄」選項卡下取消對「記錄訪問」的勾選即可 Web config配置優化(生產環境) 去除無用HttpMoles d 並不是所有的Moles都是必需的 去除不用的HttpMoles可以提高請求速度 asp net默認的HttpMoles管理請求的管線控制每一個請求 例如 SessionStateMole攔截每一個請求 分析session cookie 來載入HttpContext中的合適的session 但是並不是所有的Moles都是必需的 比如 如果你不用membership的話 就不用配置FormsAuthentication模塊 如果你不用windows身份驗證就不用配置WindowsAuthentication 這些模塊只是包含在管線裡面 為每一個請求執行一些並不是必須的代碼 默認的模塊定義在machine config中(在網站的web config中設置表示當前網站有效)($WINDOWS$Microsoft NETFramework$VERSION$CONFIG) 如果不需要這些管線的話 配置如下
代碼如下: <Moles> <! 去除不必要的節點 提高請求速度 > <remove name=OutputCache /> <remove name=Session /> <remove name=WindowsAuthentication /> <remove name=FormsAuthentication /> <remove name=PassportAuthentication /> <remove name=RoleManager /> <remove name=UrlAuthorization /> <remove name=FileAuthorization /> <remove name=AnonymousIdentification /> <remove name=Profile /> </Moles>
關閉頁面級無用機制 Web config中的<pages>節點配置全局定義頁特定設置 如配置文件范圍內的頁和控制項的 ASP NET 指令 默認enableViewState屬性為「true」 即開啟視圖 如果不使用這個機制就可以設置為「false」 默認autoEventWireup屬性為「true」 即開啟頁事件 如果不使用這個機制就可以設置為「false」 默認buffer屬性為「true」 即開啟 HTTP 響應緩沖 默認enableViewStateMac屬性為「false」 開啟對頁的視圖狀態運行計算機身份驗證檢查 (MAC) 以放置用戶篡改 如果設置為true 將會引起性能的降低 默認validateRequest默認為true 開啟驗證用戶輸入中有跨站點腳本攻擊和sql注入式漏洞攻擊 如果出現匹配情況就會發 異常 將CustomError設置為非Off狀態 Web config中的<customErrors>節點用於定義一些自定義錯誤信息的信息 此節點有Mode和defaultRedirect兩個屬性 其中defaultRedirect屬性是一個可選屬性 表示應用程序發生錯誤時重定向到的默認URL 如果沒有指定該屬性則顯示一般性錯誤 Mode屬性是一個必選屬性 它有三個可能值 它們所代表的意義分別如下 Mode 說明 On 表示在本地和遠程用戶都會看到自定義錯誤信息 Off 禁用自定義錯誤信息 本地和遠程用戶都會看到詳細的錯誤信息 RemoteOnly 表示本地用戶將看到詳細錯誤信息 而遠程用戶將會看到自定義錯誤信息 這里有必要說明一下本地用戶和遠程用戶的概念 當我們訪問asp net應用程時所使用的機器和發布asp net應用程序所使用的機器為同一台機器時成為本地用戶 反之則稱之為遠程用戶 在開發調試階段為了便於查找錯誤Mode屬性建議設置為Off 而在部署階段應將Mode屬性設置為On或者RemoteOnly 以避免這些詳細的錯誤信息暴露了程序代碼細節從而引來黑客的入侵 配置如下
代碼如下: <customErrors mode=" On " defaultRedirect="Error "/>
禁用調試 Web config中的<pilation>節點配置 ASP NET 使用的所有編譯設置 默認的debug屬性為「true」 即允許調試 在開發階段這樣配置沒有問題 但正式部署上線後 這樣會影響支撐介面的性能 所以在程序編譯完成上線之後應將其設為「false」 配置如下
代碼如下: <pilation debug="false" />
連接並發配置 連接並發數限制是指對於同一個ip對同一個domain發起的最大連接數 其實在大多數微軟的產品或組件中都存在這個限制 一般這個數值是 / 個 也就是說在默認情況下 對於同一個ip訪問同一個domain同時最多有 個連接處於建立狀態 默認是 這個值太低了 這意味著每一個IP最多隻能有兩個請求到你的網站 這樣會造成請求擁堵 asp net中connectionManagement節點可以設置單個ip對同某個domain發起的最大連接數 配置如下
代碼如下: <system net> <connectionManagement> <add address="*" maxconnection=" " /> </connectionManagement> </system net>
address代表針對哪個domain maxconnection代表最大連接數 去掉頭信息中的ASP NET 版本標頭 enableVersonHeader 指定 ASP NET 是否應輸出版本標頭 使用該屬性來確定當前使用的 ASP NET 版本 對於生產環境 該屬性不是必需的 可以禁用 配置示例
lishixin/Article/program/net/201311/14321
Ⅳ windows Server 2012 怎麼搭建web伺服器
Windows Server 2012 搭建PHP+MySQL環境要分環境,有IIS和APACHE。
一、【IIS環境安裝及配置】
1.添加IIS伺服器角色
點擊任務欄左下角的「伺服器管理器」,在「安裝類型」選項卡中選擇「基於角色或基於功能的安裝」,伺服器選擇中直接選擇當前伺服器即可,在伺服器角色中選擇「Web伺服器」(如圖1-1)。
然後到「Web伺服器角色(IIS)」中選擇需要的IIS組件。這里需要額外勾選:請求篩選、IP和域限制、URL授權、Windows身份驗證、HTTP重定向、CGI、ISAPI擴展、ISAPI篩選器。
選擇完畢後確認安裝,在同時「功能」選項卡中選擇安裝「.NET Framework 3.5」,系統將會安裝IIS以及相關的服務組件。
我們在瀏覽器中輸入,如果看到以下頁面則表明我們已經安裝完畢。
2.安裝MySQL伺服器
Windows Server2012中安裝MySQL同以往版本安裝並沒有什麼不同。
2.1.從MySQL官方:下載Windows (x86, 64-bit), MSI Installer。
2.2.雙擊安裝包進行安裝,我們選擇「Custom」模式,將安裝目錄存放在「D:MySQL」中,資料庫文件存放在「D:MySQLdata」中;
2.3.設定默認root管理員的帳號密碼,這里由於我們是本地測試,所以設定密碼為:123456,如果是用於伺服器環境,需要根據情況將密碼、埠重設;
至此MySQL伺服器已經安裝完畢了(如圖:2-1)。
3.安裝PHP
3.1.我們這里選擇下載PHP5.3,可以從官方:獲取。這里由於我們將採用Fast-cgi模式安裝,所以選擇VC9 x86 Non Thread Safe。
3.2.雙擊包進行安裝,將安裝目錄更改為「D:PHP」,選擇伺服器「IIS FAST-CGI」;
3.3.確認安裝,安裝完畢後在命令行中輸入「php -v」,看到如圖信息則表示已經安裝完成。(如圖3-1)
4.安裝IIS PHP Manager管理器
為了方便的對PHP管理,我們選擇安裝IIS的PHP Manage組件,可以從網路上找網站下載,這個安裝過程非常簡單,這里不再詳細介紹。
二、【apache環境安裝及配置】
以伺服器套件wamp Server 2.5為例說明。
apache:2.4.9
mysql:5.6.17
php:5.5.12
phpMyAdmin:4.1.14
1、安裝步驟如下圖所示:
2、配置
剛裝完wampserver之後,嘗試通過外網訪問我們配置好的wampserver伺服器,但是會發現通過外網訪問會提示許可權不夠,這是為什麼呢?是因為wampserver默認是只允許127.0.0.1訪問的。
Ⅳ Python三大web框架分別是什麼 哪個更好
【導讀】目前,Python比較火的三大web框架有Django、Flask和Tornado,要論這三個Web框架哪個更好的話,建議一點,Django幫我們事先搭建了好多,上手會快一些,學習的話可以先從Django學起,然後再學習Flask和Tornado,下面我們就來具體了解一下Python三大web框架的詳情。
1、Django
Django是一個開放源代碼的Web應用框架,由Python寫成。採用了MTV的框架模式,即模型M,模板T和視圖V。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的,即是CMS(內容管理系統)軟體。
2、Flask
Flask是一個使用Python編寫的輕量級Web應用框架。其 WSGI工具箱採用Werkzeug ,模板引擎則使用 Jinja2
。Flask使用BSD授權。
Flask也被稱為 「microframework」 ,因為它使用簡單的核心,用 extension
增加其他功能。Flask沒有默認使用的資料庫、窗體驗證工具。
Flask 很輕,花很少的成本就能夠開發一個簡單的網站。非常適合初學者學習。Flask 框架學會以後,可以考慮學習插件的使用。例如使用 WTForm +
Flask-WTForm 來驗證表單數據,用 SQLAlchemy + Flask-SQLAlchemy 來對你的資料庫進行控制。
3、Tornado
Tornado是一種 Web 伺服器軟體的開源版本。Tornado 和現在的主流 Web 伺服器框架(包括大多數 Python
的框架)有著明顯的區別:它是非阻塞式伺服器,而且速度相當快。
得利於其 非阻塞的方式和對epoll的運用,Tornado 每秒可以處理數以千計的連接,因此 Tornado 是實時 Web 服務的一個
理想框架。
關於Python三大web框架的簡單介紹,就給大家分享到這里了,當然學習是永無止境的,學習一項技能更是受益終身,所以,只要肯努力學,什麼時候開始都不晚,希望大家抓緊時間進行學習吧。
Ⅵ 在junit中模擬web伺服器有便捷的方法
測試分類:
1、界面測試
1)給用戶的整體感:舒適感;憑感覺能找到想要找的信息;設計風格是否一致
2)各控制項的功能
2、功能測試
1)刪除/增加某一項:是否對其他項造成影響,這些影響是否都正確
2)列表默認值檢查
3)檢查按鈕功能是否正確:新建、編輯、刪除、關閉、返回、保存、導入、上一頁、下一頁、頁面跳轉、重置(常見錯誤)
4)字元串長度檢查:超出長度
5)字元類型檢查
6)標點符號檢查:空格、各種引號、Enter鍵
7)特殊字元:常見%、「、」
8)中文字元:是否亂碼
9)檢查信息完整:查看信息,查看所填信息是否完整更新;更新信息,更新信息與添加信息是否一致
10)信息重復:需唯一信息處,比如重復的名字或ID、重名是否區分大小寫、加空格
11)檢查刪除功能:不選擇任何信息,按Delete,看如何處理;選擇一個或多個進行刪除;多頁選、翻頁選刪除;刪除是否有提示
12)檢查添加和修改是否一致:添加必填項,修改也該必填;添加為什麼類型,修改也該什麼類型
13)檢查修改重名:修改時把不能重名的項改為已存在的內容
14)重復提交表單:一條已經成功提交的記錄,返回後再提交
15)檢查多次使用返回鍵:返回到原來頁面,重復多次
16)搜索檢查:存在或不存在內容,看搜索結果是否正確;多個搜索條件,同時輸入合理和不合理條件;特殊字元
17)輸入信息的位置
18)上傳下載文件檢查:功能是否實現,
上傳:上傳文件是否能打開、格式要求、系統是否有解釋信息、將不能上傳的文件格式修改後綴為可上傳的文件格式;
下載:下載是否能打開、保存、格式要求
19)必填項檢查:必填項未填寫;是否有提示,如加*;對必填項提示返回後,焦點是否自動定位到必填項
20)快捷鍵檢查:是否支持快捷鍵Ctrl+C、Ctrl+V、backspace;對不允許做輸入的欄位(如:下拉選項),對快捷方式是否也做了限制
21)Enter鍵檢查:輸入結束後按Enter鍵,系統如何處理
22)刷新鍵檢查:按瀏覽器刷新鍵如何處理
23)回退鍵檢查:按瀏覽器回退鍵如何處理
24)空格檢查:輸入項輸入一個或多個空格
25)輸入法半形全形檢查:比如,浮點型,輸入全形小數點「。」或「. 」,如4. 5;全形空格
26)密碼檢查:輸入加密方式的極限字元;密碼盡可能長
27)用戶檢查:不同種類管理員用戶的不同許可權,是否可以互相刪除、管理、編輯;一般用戶的許可權;注銷功能,老用戶注銷再注冊,是否為新用戶
28)系統數據檢查:數據隨業務過程、狀態的變化保持正確,不能因為某個過程出現垃圾數據,也不能因為某個過程而丟失數據。
29)系統可恢復性檢查:以各種方式把系統搞癱,測試系統是否可以迅速恢復
30)確認提示檢查:系統更新、刪除操作:是否有提示、取消操作;提示是否准確;事前、事後提示
31)數據注入檢查:對資料庫注入,特殊字元,對SQL語句進行破壞
32)時間日期檢查:時間、日期、時間驗證:日期范圍是否符合實際業務;對於不符合實際業務的日期是否有限制
33)多瀏覽器驗證
3、性能測試
1)壓力測試:實際破壞一個Web應用系統,測試系統的反應,測試系統的限制和故障恢復能力
2)負載測試:在某一負載級別上的性能,包括某個時刻同時訪問Web的用戶數量、在線數據處理的數量
3)強度測試:測試對象在性能行為異常或極端條件下(如資源減少或用戶過多)的可接受性,以此驗證系統軟硬體水平
4)資料庫容量測試:通過存儲過程往資料庫表中插入一定數量的數據,看是否能及時顯示
5)預期指標的性能測試:在需求分析和設計階段會提出一些性能指標,對於預先確定的性能要求要首先進行測試
6)獨立業務性能測試:對核心業務模塊做用戶並發測試,包括同一時刻進行完全一樣的操作、同一時刻使用完全一樣的功能
7)組合業務性能測試:模擬多用戶的不同操作,最接近實際用戶使用情況,按用戶實際的實際使用人數比例來模擬各個模塊的組合並發情況
8)疲勞強度性能測試:系統穩定運行情況下,以一定負載壓力來長時間運行系統的測試
9)網路性能測試:准確展示帶寬、延遲、負載、埠的變化是如何影響用戶的相應時間的
10)大數據量性能測試:實時大數據量,模擬用戶工作時的實時大數據量;極限狀態下的測試,系統使用一段時間,積累一段數據量時能否正常運行,以及對前面兩種進行結合
11)伺服器性能測試:在進行用戶並發性能測試、疲勞強度、大數據量性能測試時,完成對伺服器性能的監控,並進行評估
12)一些特殊的測試:配置測試、內存泄漏的一些特殊測試
4、可用性測試(介面測試)
1)整體界面測試
2)多媒體測試
3)導航測試
5、客戶端兼容性
平台測試:windows;unix;macintosh;linux
瀏覽器測試:不同廠商的瀏覽器對Java、Javascript、ActiveX、plug-ins或不同的HTML的規格
不同的支持;框架和層次結構在不同瀏覽器也不同的顯示
6、安全性
安全性測試要求:
1)能夠對密碼試探工具進行防範
2)能夠防範對Cookie攻擊的常用手段
3)敏感數據保證不用明文傳輸
4)能防範通過文件名猜測和查看html文件內容獲取重要信息
5)能保證在網站收到工具後在給定時間內恢復,重要數據丟失不超過1小時
web 的性能測試工具:
隨著Web 2.0技術的迅速發展,許多公司都開發了一些基於Web的網站服務,通常在設計開發Web應用系統的時候很難模擬出大量用戶同時訪問系統的實際情況。
因此,當Web網站遇到訪問高峰時,容易發生伺服器響應速度變慢甚至服務中斷。
為了避免這種情況,需要一種能夠真實模擬大量用戶訪問Web應用系統的性能測試工具進行壓力測試,來測試靜態HTML頁面的響應時間,甚至測試動態網頁(包括ASP、PHP、JSP等)的響應時間,為伺服器的性能優化和調整提供數據依據。
1、企業級自動化測試工具WinRunner
Mercury Interactive公司的WinRunner是一種企業級的功能測試工具,用於檢測應用程序是否能夠達到預期的功能及正常運行。
2、工業標准級負載測試工具Loadrunner
LoadRunner 是一種預測系統行為和性能的負載測試工具
3、全球測試管理系統testdirector
TestDirector 是業界第一個基於Web的測試管理系統,它可以在您公司內部或外部進行全球范圍內測試的管理。
4、功能測試工具Rational Robot
IBM Rational Robot 是業界最頂尖的功能測試工具,它甚至可以在測試人員學習高級腳本技術之前幫助其進行成功的測試。
它集成在測試人員的桌面IBM Rational TestManager 上,在這里測試人員可以計劃、組織、執行、管理和報告所有測試活動,包括手動測試報告。
這種測試和管理的雙重功能是自動化測試的理想開始。
5、單元測試工具xUnit系列
目前的最流行的單元測試工具是xUnit系列框架,常用的根據語言不同分為JUnit(java),CppUnit(C++),DUnit (Delphi ),NUnit(.net),PhpUnit(Php )等等。
該測試框架的第一個和最傑出的應用就是由Erich Gamma (《設計模式》的作者)和Kent Beck(XP(Extreme Programming)的創始人 )提供的開放源代碼的JUnit.
6、功能測試工具SilkTest
Borland SilkTest 2006屬於軟體功能測試工具,是Borland公司所提出軟體質量管理解決方案的套件之一。
這個工具採用精靈設定與自動化執行測試,無論是程序設計新手或資深的專家都能快速建立功能測試,並分析功能錯誤。
7、性能測試工具WAS
Microsoft Web Application Stress Tool 是由微軟的網站測試人員所開發,專門用來進行實際網站壓力測試的一套工具。
透過這套功能強大的壓力測試工具,您可以使用少量的Client端計算機模擬大量用戶上線對網站服務所可能造成的影響。
8、自動化白盒測試工具Jtest
Jtest是parasoft公司推出的一款針對java語言的自動化白盒測試工具,它通過自動實現java的單元測試和代碼標准校驗,來提高代碼的可靠性。
parasoft同時出品的還有C++ test,是一款C/C++白盒測試工具。
9、功能和性能測試的工具JMeter
JMeter是Apache組織的開放源代碼項目,它是功能和性能測試的工具,100%的用java實現。
10、性能測試和分析工具WEBLOAD
webload是RadView公司推出的一個性能測試和分析工具,它讓web應用程序開發者自動執行壓力測試;webload通過模擬真實用戶的操作,生成壓力負載來測試web的性能。
Ⅶ Web伺服器配置方法教程
伺服器是一種高性能計算機,作為網路的節點,存儲、處理網路上80%的數據、信息,因此也被稱為網路的靈魂。那麼該如何配置Web伺服器呢?如果你不知道,請看我整理的Web伺服器配置方法詳解吧!
2、單擊窗口中的“添加/刪除Windows組件”圖標,彈出“Windows組件向導”對話框。
3、選中“向導”中的“應用程序伺服器”復選框。單擊“詳細信息”按鈕,彈出“應用程序伺服器”對話框。
4、選擇需要的組件,其中“Internet信息服務(IIS)”和“應用程序伺服器控制台”是必須選中的。選中“Internet信息服務(IIS)”後,再單擊“詳細信息”按鈕,彈出“Internet信息服務(IIS)”對話框。
5、選中“Internet信息服務管理器”和“萬維網服務”。並且選中“萬維網服務”後,再單擊“詳細信息”按鈕,彈出“萬維網服務”對話框。
6、其中的“萬維網服務”必須選中。如果想要伺服器支持ASP,還應該選中“Active Server Pages”。逐個單擊“確定”按鈕,關閉各對話框,直到返回圖1的“Windows組件向導”對話框。
7、單擊“下一步”按鈕,系統開始IIS的安裝,這期間可能要求插入Windows Server 2003安裝盤,系統會自動進行安裝工作。
8、安裝完成後,彈出提示安裝成功的對話框,單擊“確定”按鈕就完成了IIS的安裝。
友情提示:如果想要同時裝入FTP伺服器,在“Internet信息服務(IIS)”對話框中應該把“文件傳輸協議(FTP)服務”的復選框也選中。
在IIS中創建Web網站
打開“Internet 信息服務管理器”,在目錄樹的“網站”上單擊右鍵,在右鍵菜單中選擇“新建→網站”,彈出“網站創建向導”:
網站描述就是網站的名字,它會顯示在IIS窗口的目錄樹中,方便管理員識別各個站點。本例中起名為“枝葉的網站”。
網站IP地址:如果選擇“全部未分配”,則伺服器會將本機所有IP地址綁定在該網站上,這個選項適合於伺服器中只有這一個網站的情況。也可以從 下拉式列表框中選擇一個IP地址(下拉式列表框中列出的是本機已配置的IP地址,如果沒有,應該先為本機配置IP地址,再選擇。)
TCP埠:一般使用默認的埠號80,如果改為其它值,則用戶在訪問該站點時必須在地址中加入埠號。
主機頭:如果該站點已經有域名,可以在主機頭中輸入域名。
主目錄路徑是網站根目錄的位置,可以用“瀏覽”按鈕選擇一個文件夾作為網站的主目錄。
網站訪問許可權是限定用戶訪問網站時的許可權,“讀取”是必需的,“運行腳本”可以讓站點支持ASP,其它許可權可根據需要設置。
單擊“下一步”,彈出“完成向導”對話框,就完成了新網站的創建過程,在IIS中可以看到新建的網站。把做好的網頁和相關文件復制到主目錄中,通常就可以訪問這個網站了。
訪問網站的方法是:如果在本機上訪問,可以在瀏覽器的地址欄中輸入“http://localhost/”;如果在網路中其它計算機上訪問,可以在瀏覽器的地址欄中輸入“http://網站IP地址”。
說明:如果網站的TCP埠不是80,在地址中還需加上埠號。假設TCP埠設置為8080,則訪問地址應寫為“http://localhost:8080/”或“http://網站IP地址:8080”。
網站的基本配置
如果需要修改網站的參數,可以在“網站名字”上單擊右鍵,在右鍵菜單中選擇“屬性”,可以打開“網站屬性”對話框。
1、“網站”標簽
“網站標識”:可以設置網站名字、IP地址、埠號。單擊“高級”按鈕可以設置主機頭名。
2、“主目錄”標簽
在本地路徑中可以設置主目錄的路徑名和訪問許可權。
3、“文檔”標簽
默認文檔是指訪問一個網站時想要打開的默認網頁,這個網頁通常是該網站的主頁。如果沒有啟用默認文檔或網站的主頁文件名不在默認文檔列表中,則訪問這個網站時需要在地址中指明文件名。
默認文檔列表中最初只有4個文件名:Default.htm、Default.asp、index.htm和Default.aspx。我用 “添加”按鈕加入了一個index.asp,並用“上移”按鈕把它移到了頂部。這主要是因為我的網站的主頁名為“index.asp”,所以應該把它加入 列表,至於是否位於列表頂部倒是無關緊要的。
經過以上配置,一個Web網站就可以使用了。把製作好的網頁復制到網站的主目錄中,網站主頁的文件名應該包含在默認文檔中。打開瀏覽器,在地址欄中輸入“http://本機IP地址”,就可以打開網站的主頁。其它頁面可以用網頁中的超鏈接打開。
虛擬目錄
虛擬目錄可以使一個網站不必把所有內容都放置在主目錄內。虛擬目錄從用戶的角度來看仍在主目錄之內,但實際位置可以在計算機的其它位置,而且虛擬目錄的名字也可以與真實目錄不同。如:
圖中用戶看到的一個位於主目錄下的文件夾“pic”,它的真實位置在伺服器的“D:myimage”處,而主目錄位於“C:mywww” 處。假設該網站的域名是“www.abc.com”,則用戶訪問“http://www.abc.com/pic/文件1”時,訪問的實際位置是伺服器的 “D:myimage文件1”,所以虛擬目錄的真實名字和位置對用戶是不可知的。
創建虛擬目錄的方法 :
打開 Internet 信息服務窗口,在想要創建虛擬目錄的 Web 站點上 單擊右鍵,選擇“新建”→“虛擬目錄”。彈出虛擬目錄創建向導:
別名是映射後的名字,即客戶訪問時的名字;
路徑:伺服器上的真實路徑名,即虛擬目錄的實際位置;
訪問許可權:指客戶對該目錄的訪問許可權。
單擊“下一步”按鈕,彈出完成對話框,虛擬目錄就建立成功了。把相關文件復制到虛擬目錄中,用戶就可以按照虛擬的樹形結構訪問到指定文件了。
通常虛擬目錄的訪問許可權、默認文檔等都繼承自主目錄,如果需要修改,可在“Internet 信息服務管理器”中的虛擬目錄上單擊右鍵,選擇“屬性”,就可以修改虛擬目錄的參數設置了。
補充:伺服器介紹
伺服器,也稱伺服器,是提供計算服務的設備。由於伺服器需要響應服務請求,並進行處理,因此一般來說伺服器應具備承擔服務並且保障服務的能力。
伺服器的構成包括處理器、硬碟、內存、系統匯流排等,和通用的計算機架構類似,但是由於需要提供高可靠的服務,因此在處理能力、穩定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。
在網路環境下,根據伺服器提供的服務類型不同,分為文件伺服器,資料庫伺服器,應用程序伺服器,WEB伺服器等。
相關閱讀:伺服器常見問題有哪些
1.系統藍屏、頻繁死機、重啟、反映速度遲鈍
伺服器的與我們平常電腦不論是硬體結構還是運行系統,都是極其類似的。因此,就如同我們的電腦一樣,一樣可能會感染病毒,同樣會因為系統漏洞、軟體沖突、硬體故障導致死機、藍屏、重啟等故障,同樣會因為垃圾緩存信息過多而導致反應遲鈍。
2.遠程桌面連接超出最大連接數
由於伺服器默認為允許連接數為2個,如果登陸後忘記注銷,而是直接關閉遠程桌面的話,伺服器識別此次登陸還是留在伺服器端的。出現這種情況,最常見的就是重啟伺服器,但是,如果是高峰期,重啟伺服器帶來的損失是顯而易見的。那麼此時,就可以利用mstsc/console指令進行強行登陸了。打開“運行”框,鍵入“mstsc/v:xxx.xxx.xxx.xxx(伺服器IP)/console”,即可強行登陸到遠程桌面了。
3.無法刪除的文件該怎麼清理
遇到這種情況,可能是該文件還在運行中,可以重啟刪之,或者運行CMD,輸入arrtib-a-s-h-r想要刪除的文件夾名,最後輸入del想要刪除的文件夾名即可刪除,運行該命令後無法恢復,請慎用。
4.系統埠隱患
對於伺服器來說,首要保障穩定性和安全性。因此,我們僅需保證伺服器最基本的功能即可,就像音效卡都是默認禁止的。我們並不需要太多的功能,也不需要太多的埠支持。像一些不必要,而且風險較高的埠大可封掉。而一些必要的,又有風險的埠,比如:3389、80等埠,我們可以通過修改注冊表的方法將其設置不特殊的秘密埠,這樣伺服器埠的安全隱患就不復存在了。