小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Nginx基本服務(wù)與upstream配置詳解

 WindySky 2016-04-11

Nginx基本服務(wù)與upstream配置詳解

Debugo 2658 閱讀

Nginx (“engine x”) 是一個(gè)高性能的HTTP 和反向代理 服務(wù)器,在大負(fù)載的情況下表現(xiàn)十分優(yōu)秀。本文簡(jiǎn)單介紹一下安裝、web服務(wù)和反向代理服務(wù)配置方法。


1. 安裝ngnix

yum -y install pcre-devel zlib-devel openssl-devel openssl gcc make
# 下載目前的stable版
wget http:///download/nginx-1.6.2.tar.gz
tar xvzf nginx-1.6.2.tar.gz
# nginx目錄為/opt/nginx/1.6.2,使用nginx用戶來(lái)啟動(dòng)
# 詳細(xì)的編譯配置信息請(qǐng)參考:http://www./install
./configure --prefix=/opt/nginx/1.6.2 --user=nginx --with-openssl=/usr/lib64/openssl
# 編譯安裝
make -j && make install
# 添加用戶和組
groupadd nginx
useradd -g nginx nginx
echo "nginx" | passwd --stdin nginx
# 創(chuàng)建符號(hào)鏈接
ln -s /opt/nginx/1.6.2/sbin/nginx /usr/local/bin/nginx
# 啟動(dòng)ngnix
ngnix
# 檢查端口80是否被監(jiān)聽,該端口在/opt/nginx/1.6.2/conf/nginx.conf中已經(jīng)有一個(gè)默認(rèn)的server中定義
lsof -i :80
COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   15050  root    6u  IPv4  95462      0t0  TCP *:http (LISTEN)
nginx   15051 nginx    6u  IPv4  95462      0t0  TCP *:http (LISTEN)
# 可以直接發(fā)送SIGKILL信號(hào)給nginx主進(jìn)程
pkill nginx

2. nginx常用命令

(1). 啟動(dòng)時(shí)指定配置文件
nginx -c /opt/nginx/1.6.2/conf/nginx.conf
(2). 運(yùn)行時(shí)重載配置文件
當(dāng)nginx主進(jìn)程接收到重載配置文件的命令后,它會(huì)先檢查新配置文件的合法性,然后將該配置文件應(yīng)用。然后,主進(jìn)程會(huì)啟動(dòng)一個(gè)新的工作進(jìn)程,并發(fā)送關(guān)閉請(qǐng)求給舊的工作進(jìn)程。舊的工作進(jìn)程接收到關(guān)閉請(qǐng)求后,會(huì)停止接受新的連接,并繼續(xù)服務(wù)舊的連接請(qǐng)求直到所有的請(qǐng)求完成后才退出。
nginx -s reload
(3). 運(yùn)行時(shí)快速關(guān)閉nginx
nginx -s stop
(4). 運(yùn)行時(shí)優(yōu)雅關(guān)閉nginx
所有的工作進(jìn)程會(huì)停止接受新的連接,并繼續(xù)服務(wù)舊的連接請(qǐng)求直到所有的請(qǐng)求完成后才退出。
nginx -s quit
(5). 運(yùn)行時(shí)重新打開日志文件
ngnix -s reopen
(6). 測(cè)試配置文件

yum -y install pcre-devel zlib-devel openssl-devel openssl gcc make
# 下載目前的stable版
wget http:///download/nginx-1.6.2.tar.gz
tar xvzf nginx-1.6.2.tar.gz
# nginx目錄為/opt/nginx/1.6.2,使用nginx用戶來(lái)啟動(dòng)
# 詳細(xì)的編譯配置信息請(qǐng)參考:http://www./install
./configure --prefix=/opt/nginx/1.6.2 --user=nginx --with-openssl=/usr/lib64/openssl
# 編譯安裝
make -j && make install
# 添加用戶和組
groupadd nginx
useradd -g nginx nginx
echo "nginx" | passwd --stdin nginx
# 創(chuàng)建符號(hào)鏈接
ln -s /opt/nginx/1.6.2/sbin/nginx /usr/local/bin/nginx
# 啟動(dòng)ngnix
ngnix
# 檢查端口80是否被監(jiān)聽,該端口在/opt/nginx/1.6.2/conf/nginx.conf中已經(jīng)有一個(gè)默認(rèn)的server中定義
lsof -i :80
COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   15050  root    6u  IPv4  95462      0t0  TCP *:http (LISTEN)
nginx   15051 nginx    6u  IPv4  95462      0t0  TCP *:http (LISTEN)
# 可以直接發(fā)送SIGKILL信號(hào)給nginx主進(jìn)程
pkill nginx

(7). 查看nginx版本

nginx -v    
nginx version: nginx/1.6.2

3. 配置靜態(tài)內(nèi)容

在debugo03和debugo04上,打開配置文件,修改下面的內(nèi)容

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    ......
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /var/www/html;
            index  index.html index.htm;
        }
}

其中,啟動(dòng)了一個(gè)worker進(jìn)程,一般情況下純nginx的服務(wù)器可以將這個(gè)值配置為。在作為web服務(wù)器的情況下,nginx最大連接數(shù)為worker_connections * worker_processes.
listen監(jiān)聽本地所有地址端口80,也可以指定listen 192.168.111.10:80監(jiān)聽到某一地址上。
server_name指令主要用于配置基于名稱的虛擬主機(jī)。支持通配符*(例如*.domain.com)或正則表達(dá)式(例如~^(?.+)\.domain\.com$)。參考關(guān)于Nginx的server_name
location / 指的是URL中“/”路徑為下面的配置內(nèi)容。包括該URL位置的root目錄,并在該目錄下依次尋找 index.html index.htm兩個(gè)索引文件。一般的靜態(tài)站點(diǎn)可以配置多個(gè)location,例如:

server {
    location / {
        root /data/www;
    }

    location /images/ {
        root /data/images;
    }
}

這里我們?cè)赿ebugo03和debugo04中“/”的index.html中配置一個(gè)簡(jiǎn)單的文本,僅包含主機(jī)名,用于后面的負(fù)載均衡測(cè)試。

4. 配置ngnix負(fù)載均衡

debugo01和debugo02作為兩臺(tái)負(fù)載均衡服務(wù)器,debugo03和debugo04作為兩臺(tái)web server
下面打開配置文件

vim nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}

http {
    keepalive_timeout  65;
    include upstream.conf;
}

vim upstream.conf
upstream debugo_servers {
	server debugo03:80 weight=5;
	server debugo04:80 weight=10;
}
server {
	listen	debugo01:80;
	location / {
		proxy_pass http://debugo_servers;
	}
}

測(cè)試如下,驗(yàn)證了輪詢算法+權(quán)重的有效性??梢愿鶕?jù)機(jī)器性能和目標(biāo)設(shè)置不同的權(quán)重。

[root@debugo01 ~]# curl debugo01
debugo04
[root@debugo01 ~]# curl debugo01
debugo03
[root@debugo01 ~]# curl debugo01
debugo04
[root@debugo01 ~]# curl debugo01
debugo04
[root@debugo01 ~]# curl debugo01
debugo03
[root@debugo01 ~]# curl debugo01
debugo04
[root@debugo01 ~]# curl debugo01
debugo04
[root@debugo01 ~]# curl debugo01
debugo03

除了輪詢和權(quán)重輪詢以外,還包括下面三種算法:
IP Hash : 需要在upstream的配置中指定“ip_hash;”,每個(gè)請(qǐng)求按訪問(wèn)ip的hash結(jié)果分配,這樣每個(gè)訪客固定訪問(wèn)一個(gè)后端服務(wù)器,可以解決session的問(wèn)題。
fair:需要在upstream的配置中指定“fair;”按后端服務(wù)器的響應(yīng)時(shí)間來(lái)分配請(qǐng)求,響應(yīng)時(shí)間短的優(yōu)先分配。
URL hash:需要在upstream中配置指定:“hash $request_uri; hash_method crc32;”按訪問(wèn)url的hash結(jié)果來(lái)分配請(qǐng)求,使每個(gè)url定向到同一個(gè)后端服務(wù)器,后端服務(wù)器為緩存時(shí)比較有效。
另外,在nignx中可以為每個(gè) backend server 指定最大的重試次數(shù)和重試時(shí)間間隔。所使用的關(guān)鍵字是 max_fails 和 fail_timeout。而backup指的是僅當(dāng)其他serverdown或者忙時(shí)才會(huì)請(qǐng)求這臺(tái)server。例如:

upstream debugo_servers {
    server debugo01:80 weight=5 backup;
    server debugo02:80 weight=10 max_fails=3 fail_timeout=30s;
}

^^

作者:Debugo
原文地址:Nginx基本服務(wù)與upstream配置詳解, 感謝原作者分享。

發(fā)表評(píng)論

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多