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