在Linux上部署網(wǎng)站需要先安裝Web服務(wù)器端軟件,IIS只能在windows上使用,相對(duì)的我們可以選擇著名的apache、Ngnix等。本文將簡(jiǎn)單Nginx的安裝、配置以及利用其運(yùn)行一個(gè)簡(jiǎn)單的Asp.net 網(wǎng)站。 NginxNginx (Engine X)是一個(gè)高性能的Web服務(wù)器,由于其穩(wěn)定、功能豐富、低資源消耗等特點(diǎn),已經(jīng)有很多網(wǎng)站利用它進(jìn)行部署(國(guó)內(nèi)不少大公司開始利用nginx 取代 apache,畢竟LAMP 太教條化了)。 Nginx安裝 本文將從源碼開始安裝nginx 目前最新版為 1.2.0,所有的安裝過(guò)程都是在Ubuntu操作系統(tǒng)下進(jìn)行的。 首先下載源碼: wget http:///download/nginx-1.2.0.tar.gz 然后解壓 tar -zxv -f nginx-1.2.0.tar.gz 進(jìn)入解壓的目錄后接著執(zhí)行 ./configure 碰到了 PCRE Library 沒有安裝的問(wèn)題 利用 apt-get install libpcre3 libpcre3-dev 命令安裝PCRE庫(kù) 再次運(yùn)行./configure 發(fā)現(xiàn)缺乏Http gzip模塊 執(zhí)行 :apt-get install libssl-dev 安裝對(duì)應(yīng)的模塊。 再次運(yùn)行./configure
接著依次運(yùn)行 make make install 這樣就完成了Nginx的安裝,默認(rèn)安裝在/usr/local/nginx下。 使用以下命令啟動(dòng)Nginx /usr/local/nginx/sbin/nginx
測(cè)試NginxNginx默認(rèn)以Deamon進(jìn)程啟動(dòng),輸入下列命令測(cè)試是否啟動(dòng)成功: curl -i http://localhost/ 成功安裝后會(huì)得到以下結(jié)果: 如果出現(xiàn)以上信息,恭喜你Nginx 安裝成功。 如果想停止運(yùn)行Nginx可以利用以下命令: /usr/local/nginx/sbin/nginx -s stop 配置Nginxnginx的配置文件是純文本文件,主配置文件默認(rèn)放在安裝目錄下的conf文件夾中。conf下有很多的配置文件,其中nginx.conf為主配置文件。整個(gè)配置文件以block的形式組織,每一個(gè)"{}"及其內(nèi)容就代表一個(gè)block.block可以分為幾個(gè)層次,整個(gè)配置文件中main指令位于最高層,在main層下面可以有Events、HTTP等層級(jí),而在HTTP層中又包含有server層,即server block,server block中又可分為location層,并且一個(gè)server block中可以包含多個(gè)location block.
打開配置文件在 Http 配置塊內(nèi)添加: include /usr/local/nginx/conf/monotest.conf; 說(shuō)明:這里利用 include 命令 將虛擬主機(jī)Server 節(jié)的配置移動(dòng)到單獨(dú)的文件中方便管理,空格后面緊跟的是文件路徑。(不要忘記分號(hào)“;”). Monotest .conf 的配置如下: server{ listen 8001; server_name localhost; location / { root /home/ubuntu/www/monotest/; index default.aspx Default.aspx; fastcgi_index Default.aspx; fastcgi_pass 127.0.0.1:9001; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /usr/local/nginx/conf/fastcgi_params; } } server 表示我們配置的虛擬主機(jī),listen 指定服務(wù)監(jiān)聽的端口(通常為80 ),這里我們指定為8001;server_name用來(lái)指定IP地址或者域名,多個(gè)域名之間用空格分開; location 可以用于匹配URL,其語(yǔ)法為location [=|~|~*|^~] /uri/ { … }
root 表示站點(diǎn)的路徑;index 表示配置的默認(rèn)頁(yè)。 fastcgi_pass ,表示FastCgi服務(wù)啟動(dòng)時(shí)所采用的地址 Nginx并不直接支持外部程序到調(diào)用或解析(IIS 則可以直接調(diào)用IASPI進(jìn)行擴(kuò)展),需要通過(guò)FastCGI接口來(lái)調(diào)用。在Linux下FastCGI利用的是Socket,所以我們需要指定地址和綁定端口。 啟動(dòng)站點(diǎn)啟動(dòng)站點(diǎn)需要分別啟動(dòng)nginx 和 fastcgi服務(wù)。 首先啟動(dòng)nginx 輸入文章開始的 /usr/local/nginx/sbin/nginx 命令如果沒有其他提示表示運(yùn)行成功(Linux的哲學(xué)?。。?,接著啟動(dòng)fastCgi su nohup fastcgi-mono-server4 /applications=/:/home/ubuntu/www/monotest/ /socket=tcp:127.0.0.1:9001 & nohup .... & 表示讓程序在后臺(tái)運(yùn)行。 fastcgi-mono-server4 針對(duì)的是 mono/.net 4.0 fastcgi-mono-server2 命令針對(duì)的是 mono/.net2.0 版本。 /application 參數(shù)用于指定虛擬路徑和物理路徑見的映射,"/: " 表示映射到根路徑,可參考:http://www./FastCGI /socket 指定地址和端口。 命令成功運(yùn)行后會(huì)提示: nohup: 忽略輸入并把輸出追加到"nohup.out" 新建簡(jiǎn)單網(wǎng)站打開Monodevelop新建一個(gè)簡(jiǎn)單的asp.net 網(wǎng)站,在項(xiàng)目模板張選擇“C#”-》“ASP.NET”-》“Web application”。 將項(xiàng)目名稱命名為“monotest”. 網(wǎng)站只是用于測(cè)試nginx的配置,無(wú)需做太多的設(shè)計(jì),使用項(xiàng)目模板的默認(rèn)生成即可。 右擊項(xiàng)目,選擇命令“工具”-》“Deloy to web”: 點(diǎn)擊“Edit targets” 按鈕,然后在彈出的“工程選項(xiàng)”窗口左欄 找到 “部署”-》“Web deloyment target”
點(diǎn)擊 “Add” 在彈出的窗口中填寫好要保存的目標(biāo)路徑即可。最后將發(fā)布好的網(wǎng)站拷貝到上面server虛擬主機(jī)配置中指定的 路徑中。 運(yùn)行效果
后記:經(jīng)過(guò)一番折騰總算是成功運(yùn)行,目前還不知道性能如何,文章中只是點(diǎn)到了一部分和Mono相關(guān)的內(nèi)容,Nginx、FastCGi 的很多配置也沒有說(shuō)明。 nginx依賴的庫(kù): 1. gzip module requires zlib library
參考鏈接 http://kb.cnblogs.com/page/98352/ http://www.cnblogs.com/xiaogangqq123/archive/2011/03/02/1969006.html http://blog.sina.com.cn/s/articlelist_1834459124_0_1.html |
|
來(lái)自: 命運(yùn)之輪 > 《服務(wù)器相關(guān)》