一、) 安裝Nginx
1.) 安裝
Nginx發音為[engine x],是由俄羅斯人Igor Sysoev建立的項目,基於BSD許可。據說他當初是F5的成員之一,英文主頁:http://nginx.net。俄羅斯的一些大網站已經使用它超過兩年多了,一直表現不凡。
安裝nginx之前需要安裝pcre包和zlib以支持重寫,正則以及網頁壓縮等等.
安裝pcre
下載地址: http://www.pcre.org/
下載適合自己的版本,然後進行安裝:
tar zxvf pcre-7.7.tar.gz
cd pcre-7.7
make
make install
安裝zlib
下載地址: http://www.zlib.net/
下載適合自己的版本,然後進行安裝:
tar zxvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
make
make install
下載地址: http://www.nginx.net/
等待pcre和zlib安裝完畢,開始安裝nginx
下載適合自己的版本,然後編譯安裝:
Nginx的編譯參數如下:
[root@oracle132 /]# tar zxvf nginx-0.6.31
[root@oracle132 nginx-0.6.31]# cd nginx-0.6.31
特別說明:Nginx需要PCRE模塊的支持,但在RHEL下,即便已經安裝PCRE模塊,Nginx編譯時還是不能正確找到相關庫文件,因此需要做以下變通。
[root@oracle132 nginx-0.6.31]# mkdir /usr/include/pcre
[root@oracle132 nginx-0.6.31]#cp /usr/local/lib/libpcre.a /usr/include/pcre/libpcre.a
[root@oracle132 nginx-0.6.31]# cp /usr/local/lib/libpcre.a /usr/include/pcre/libpcre.la
[root@oracle132 nginx-0.6.31]# cp /oracle/pcre-7.7/pcre.h /usr/include/pcre/pcre.h
[root@oracle132 nginx-0.6.31]# mkdir /usr/include/pcre/.libs
[root@oracle132 nginx-0.6.31]# cp /usr/local/lib/libpcre.a /usr/include/pcre/.libs/libpcre.a
[root@oracle132 nginx-0.6.31]# cp /usr/local/lib/libpcre.a /usr/include/pcre/.libs/libpcre.la
[root@oracle132 nginx-0.6.31]# cp /oracle/pcre-7.7/pcre.h /usr/include/pcre/.libs/pcre.h
上面變通操作完畢,接下來開始編譯安裝.
[root@oracle132 nginx-0.6.31]# ./configure --with-pcre=/usr/include/pcre --with-http_stub_status_module
[root@oracle132 nginx-0.6.31]# vi ./objs/Makefile(注:刪除此文件1006行“./configure --disable-shared”)
[root@oracle132 nginx-0.6.31]#make
[root@oracle132 nginx-0.6.31]#make install
[root@oracle132 nginx-0.6.31]#
[root@oracle132 nginx-0.6.31]#
安裝完畢,默認nginx安裝到了/usr/local/下,進入nginx文件夾,打開配置文件!
[root@oracle132 conf]# pwd
/usr/local/nginx/conf
2)nginx的配置文件詳解
[root@oracle132 conf]# vi nginx.conf
user nobody nobody; #運行用戶
worker_processes 1; #啟動進程
#全局錯誤日志及PID文件
#error_log logs/error.log;
error_log logs/error.log notice;
#error_log logs/error.log info;
pid logs/nginx.pid;
#工作模式及連接數上限
events {
use epoll;
worker_connections 1024;
}
#設定http服務器,利用它的反向代理功能提供負載均衡支持
http {
#設定mime類型
include mime.types;
default_type application/octet-stream;
#設定日志格式
#log_format main '$remote_addr - $remote_user [$time_local] $request '
# '"$status" $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
#設定請求緩沖
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
#設定access log
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
#啟用網頁壓縮
gzip on;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_proxied any;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 1100;
gzip_buffers 4 8k;
#設定負載均衡的服務器列表
upstream ixdba{
#weigth參數表示權值,權值越高被分配到的幾率越大
#本機上的Squid開啟3128端口
server 192.168.8.1:3128 weight=5;
server 192.168.8.2:80 weight=1;
server 192.168.8.3:80 weight=6;
}
#下面是配置虛擬主機
include /usr/local/nginx/conf/proxy.conf;
include /usr/local/nginx/conf/vhosts/www.test.com.conf;
3)虛擬主機配置文件詳解
由於虛擬主機分別有一個文件來指定,下面舉例某個虛擬主機的配置如下:
[root@oracle132 vhosts]#
vi /usr/local/nginx/conf/vhosts/www.test.com.conf;
server {
listen 80; #虛擬主機使用端口
server_name www.test.com; #虛擬主機訪問域名
charset UTF-8; #設定nginx默認字符編碼
#access_log logs/host.access.log main;
#所有jpg格式的圖片都有nginx來處理
location ~ \.jpg$ {
root /cicro/cws3/vhosts/www.test.com/ROOT;
expires 30d;
}
#所有gif格式的圖片都有nginx來處理
location ~ \.gif$ {
root /cicro/cws3/vhosts/www.test.com/ROOT;
expires 30d;
}
# upload和html下所有文件都有nginx來處理
location ~ ^/(upload|html)/ {
root /cicro/cws3/vhosts/www.test.com/ROOT;
expires 30d;
}
#除去上面的文件,剩下的所有都代理給http://127.0.0.1:8009來訪問
location / {
root /cicro/cws3/vhosts/www.test.com/ROOT;
index index.html;
proxy_pass http://127.0.0.1:8009;
}
#設定查看Nginx狀態的地址
location /NginxStatus {
access_log on;
auth_basic "NginxStatus";
auth_basic_user_file ../htpasswd;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
在上面有設置查看Nginx狀態的地址,需要apache的htpasswd 來生成一個登錄驗證文件,這樣生成一個htpasswd 文件:
[root@oracle132 vhosts]# /usr/local/bin/htpasswd -c htpasswd gaojf
New password: (此處輸入您的密碼)
Re-type new password: (再次輸入您的密碼)
Adding password for user gaojf
上面 /usr/local/bin/htpasswd 是htpasswd 文件的執行路徑,如果沒有這個文件,可以從apache的bin目錄拷貝一個過來即可!
-c是創建一個文件
-c後面的httpasswd是創建驗證文件的名字.
gaojf是創建的用戶
#查看nginxstatus:
http://www.test.com/nginxstatus/,輸入驗證帳號密碼,即可看到類似如下內容:
Active connections: 328
server accepts handled requests
9309 8982 28890
Reading: 1 Writing: 3 Waiting: 324
第一行表示現在活躍的連接數
第三行的第三個數字表示Nginx運行到當前時間接受到的總請求數,假如快達到了上限,就需要加大上限值了。
本文出自 “技術成就夢想” 博客,請務必保留此出處http://ixdba.blog.51cto.com/2895551/526468