Nginx詳細配置(含負載均衡)
1.安裝nginx服務
@安裝pcre(Nginx的Urlrewrite模組依賴PCRE)
# tar zxvf pcre-8.12.tar.gz
# cd pcre-8.12
# ./configure --prefix=/usr/local/webserver/pcre (--prefix=路徑,需要裝到哪個路徑下根據自己實際情況填寫
# make
#make install(預設到此結束,但有時候安裝nginx會報錯,需要繼續執行以下內容)
複製到pcre目錄
# cp /usr/local/webserver/pcre/lib/libpcre.a /usr/local/webserver/pcre/libpcre.a
# cp /usr/local/webserver/pcre/lib/libpcre.la /usr/local/webserver/pcre/libpcre.la
# cp /usr/local/webserver/pcre/include/pcre.h /usr/local/webserver/pcre/pcre.h
建立.libs資料夾
# mkdir /usr/local/webserver/pcre/.libs
複製到.lib資料夾
# cp /usr/local/webserver/pcre/lib/libpcre.a /usr/local/webserver/pcre/.libs/libpcre.a
#cp /usr/local/webserver/pcre/lib/libpcre.la /usr/local/webserver/pcre/.libs/libpcre.la
# cp /usr/local/webserver/pcre/include/pcre.h /usr/local/webserver/pcre/.libs/pcre.h
@安裝nginx /usr/local/nginx
# tar zxvf nginx-1.0.10.tar.gz
# cd nginx-1.0.10
#./configure --user=root(nignx所屬的使用者) --prefix=/usr/local/webserver/nginx (nginx安裝路徑) --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/webserver/pcre(上面安裝的pcre的路徑)
# vi objs/Makefile
查詢configure --disable-shared,刪除./configure --disable-shared, 儲存
#make && make install
2. 進入nginx中的conf資料夾,配置nginx.conf
user root; #設定使用者設定成root 使用者賦給他最大許可權
worker_processes 1; #工作程序,根據硬體調整,根據機器CPU可以配置多個程序
#error_log logs/error.log;
#error_log logs/error.log notice;
error_log /var/log/nginx/nginx_error.log crit; #錯誤日誌,自由定義
pid /usr/local/webserver/nginx/nginx.pid; #pid檔案位置,自由定義
events {
use epoll; #指定事件響應模式為為高效的 poll 模式
worker_connections 51200; #工作程序的最大連線數量,根據硬體調整,和前面工作程序配合起來用,儘量大,但是別把cpu跑到100%就可以
}
http {
include mime.types;
default_type application/octet-stream;
#default_type text/html; #根據實際情況而定用哪種格式
#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;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
#upstream的負載均衡(如果不需要可以不配置),weight是權重,可以根據機器配置定義權重。據說nginx可以根據後臺響應時間調整。後臺需要多個web伺服器。
upstream test{
#這裡指定多個源伺服器,ip:埠,80埠的話可寫可不寫
server 192.168.0.2:7001 weight=2;
server 192.168.0.2:7002 weight=3;
# weight為權重,代表請求分發的百分比,預設為 1. 上述配置,第一臺機器的權重為
2/5 即將 40%的請求分給7001 埠.
}
# Server 節點就是一個虛擬主機
server {
listen 80;(nginx監聽的埠)
server_name 192.168.0.2;(nginx過濾的ip或者域名)
location / {
root /apps/FSM_CMS;(響應的服務包存放位置)
index index.html index.jsp;(預設的響應介面)
}
(靜態檔案,nginx自己處理)
location ~* \.(gif|jpg|png|bmp|ico|rar|css|js|zip|txt|flv|swf|mid|doc|ppt|xls|pdf|mp3|wma)$ {
root /apps/FSM_CMS/;(靜態檔案存放位置)
# expires 30d; (過期時間,30天,可適量調整)
}
location ~ (\.jsp)|(\.do) {
proxy_pass http://192.168.1.1:8080/; #把.jsp或.do的請求轉發給weblogic處理
proxy_set_header X-Real-IP $remote_addr; #保留客戶端請求的真實 IP 地址,用於某些訪問統計
proxy_set_header Host $host; #保留客戶端請求的域名資訊
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffer_size 4k; #設定代理伺服器(nginx)儲存使用者頭資訊的緩衝區大小
proxy_buffers 4 32k; #proxy_buffer緩衝區,網頁平均在32k以下的話,這樣設定
proxy_busy_buffers_size 64k; #高負荷下緩衝大小 (proxy_buffers*2)
proxy_temp_file_write_size 64k;
#設定快取資料夾大小,大於這個值,將從 upstream 伺服器當代理下載的檔案超過該引數設定的大小,nginx會先將檔案寫入臨時目錄 (預設為
nginx 安裝目下/proxy_temp 目錄),
proxy_max_temp_file_size 512m;
}
#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;
}
#禁止訪問 .htxxx 檔案
#location ~ /\.ht {
# deny all;
#}
}
}
3) 檢視配置是否成功
/usr/local/webserver/nginx/sbin/nginx –t –c /usr/local/webserver/nginx/conf/nginx.conf
成功的話會提示success 否的話提示failed;
進入nginx資料夾中的sbin資料夾
啟動nginx命令 cd /usr/local/webserver/nginx/sbin/ 執行 ./nginx
停止nginx ./nginx –s stop 重啟./nginx -s reload
- 檢視啟動結果
檢視啟動程序
[[email protected] html]# ps -ef | grep nginx
root 31930 1 0 15:00 ? 00:00:00 nginx: master process nginx nobody 31931 31930 0 15:00 ? 00:00:00 nginx: worker proces nobody 31932 31930 0 15:00 ? 00:00:00 nginx: worker proces nobody 31933 31930 0 15:00 ? 00:00:00 nginx: worker process nobody 31934 31930 0 15:00 ? 00:00:00 nginx: worker process nobody 31935 31930 0 15:00 ? 00:00:00 nginx: worker process
瀏覽器輸入http://localhost檢視nginx啟動情況
完畢!