nginx 負(fù)載均衡配置

1譬挚、安裝相關(guān)依賴? ? yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel

2镰惦、另外下載模塊nginx_upstream_check_module-0.3.0.tar.gz?—— 檢查后端服務(wù)器的狀態(tài)??https://github.com/yaoweibin/nginx_upstream_check_module/releases

3唇辨、加壓pcre? tar -xzf pcre-8.34.tar.gz??mv pcre-8.34 /usr/local/pcre

? ? ? ?解壓并重命名為

v古典風(fēng)格

3、cd nginx-1.20.1? ?

??./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/pcre --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module? --with-http_image_filter_module --add-module=/usr/local/nginx_upstream

make && make install

4、/usr/local/nginx/sbin/nginx -v

5、添加運(yùn)行使用用戶

6婉徘、/usr/sbin/groupadd nginx

7、/usr/sbin/useradd -g nginx nginx

8咐汞、檢查配置文件nginx.conf的正確性命令:

/usr/local/nginx/sbin/nginx -t

9盖呼、Nginx 啟動(dòng)命令如下:

/usr/local/nginx/sbin/nginx

/usr/local/nginx/sbin/nginx -s reopen

測(cè)試一下是否有錯(cuò):/usr/local/nginx/sbin/nginx -t

平滑重啟:/usr/local/nginx/sbin/nginx -s reload

10、加入系統(tǒng)服務(wù)

vim /etc/init.d/nginx

#!/bin/sh

#

# nginx - this script starts and stops the nginx daemon

#

# chkconfig:? - 85 15

# description:? NGINX is an HTTP(S) server, HTTP(S) reverse \

#? ? ? ? ? ? ? proxy and IMAP/POP3 proxy server

# processname: nginx

# config:? ? ? /etc/nginx/nginx.conf

# config:? ? ? /etc/sysconfig/nginx

pidfile=" /usr/local/nginx/nginx.pid"

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/local/nginx/sbin/nginx"

prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

make_dirs() {

? # make required directories

? user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`

? if [ -n "$user" ]; then

? ? ? if [ -z "`grep $user /etc/passwd`" ]; then

? ? ? ? useradd -M -s /bin/nologin $user

? ? ? fi

? ? ? options=`$nginx -V 2>&1 | grep 'configure arguments:'`

? ? ? for opt in $options; do

? ? ? ? ? if [ `echo $opt | grep '.*-temp-path'` ]; then

? ? ? ? ? ? ? value=`echo $opt | cut -d "=" -f 2`

? ? ? ? ? ? ? if [ ! -d "$value" ]; then

? ? ? ? ? ? ? ? ? # echo "creating" $value

? ? ? ? ? ? ? ? ? mkdir -p $value && chown -R $user $value

? ? ? ? ? ? ? fi

? ? ? ? ? fi

? ? ? done

? ? fi

}

start() {

? ? [ -x $nginx ] || exit 5

? ? [ -f $NGINX_CONF_FILE ] || exit 6

? ? make_dirs

? ? echo -n $"Starting $prog: "

? ? daemon $nginx -c $NGINX_CONF_FILE

? ? retval=$?

? ? echo

? ? [ $retval -eq 0 ] && touch $lockfile

? ? return $retval

}

stop() {

? ? echo -n $"Stopping $prog: "

? ? killproc $prog -QUIT

? ? retval=$?

? ? echo

? ? [ $retval -eq 0 ] && rm -f $lockfile

? ? return $retval

}

restart() {

? ? configtest || return $?

? ? stop

? ? sleep 1

? ? start

}

reload() {

? ? configtest || return $?

? ? echo -n $"Reloading $prog: "

? ? killproc $prog -HUP

? ? retval=$?

? ? echo

}

force_reload() {

? ? restart

}

configtest() {

? $nginx -t -c $NGINX_CONF_FILE

}

rh_status() {

? ? status $prog

}

rh_status_q() {

? ? rh_status >/dev/null 2>&1

}

case "$1" in

? ? start)

? ? ? ? rh_status_q && exit 0

? ? ? ? $1

? ? ? ? ;;

? ? stop)

? ? ? ? rh_status_q || exit 0

? ? ? ? $1

? ? ? ? ;;

? ? restart|configtest)

? ? ? ? $1

? ? ? ? ;;

? ? reload)

? ? ? ? rh_status_q || exit 7

? ? ? ? $1

? ? ? ? ;;

? ? force-reload)

? ? ? ? force_reload

? ? ? ? ;;

? ? status)

? ? ? ? rh_status

? ? ? ? ;;

? ? condrestart|try-restart)

? ? ? ? rh_status_q || exit 0

? ? ? ? ? ? ;;

? ? *)

? ? ? ? echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"

? ? ? ? exit 2

esac


11碉考、 設(shè)置執(zhí)行權(quán)限chmod +x /etc/init.d/nginx

12塌计、設(shè)置中的模式開機(jī)啟動(dòng)/sbin/chkconfig nginx on

檢查一下## 顯示開機(jī)啟動(dòng)自動(dòng)列表是否存在nginx chkconfig --list # 顯示開機(jī)自動(dòng)啟動(dòng)的服務(wù)sudo chkconfig --list nginx

nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off

完成!

之后侯谁,就可以使用以下命令了

service nginx start

service nginx stop

service nginx restart

service nginx reload

service nginx status

將nginx 加入系統(tǒng)變量

修改/etc/profile 文件

? vim /etc/profile

1

添加PATH

如果已經(jīng)存在PATH 也只需要在下面添加更多的PATH 兩者之間不沖突

#? 在文件中添加nginx 的執(zhí)行文件锌仅。

export PATH=$PATH:/usr/local/nginx/sbin

1

2

使立即生效

保存文件后PATH 不會(huì)立即生效需要執(zhí)行 source /etc/profile

source /etc/profile

加入執(zhí)行權(quán)限chmod +x nginx

先將nginx服務(wù)加入chkconfig管理列表:

chkconfig --add /etc/init.d/nginx

加完這個(gè)之后章钾,就可以使用service對(duì)nginx進(jìn)行啟動(dòng),重啟等操作了热芹。

service nginx start

service nginx stop

13贱傀、設(shè)置nginx 反向代理

vim /usr/local/nginx/conf/nginx.comf

#user nobody;

worker_processes? 1;

#error_log? logs/error.log;

#error_log? logs/error.log? notice;

#error_log? logs/error.log? info;

#pid? ? ? ? logs/nginx.pid;

events {

? ? worker_connections? 1024;

}

http {

? ? ? ? include? ? ? mime.types;? #文件擴(kuò)展名與文件類型映射表

? ? ? ? default_type? application/octet-stream; #默認(rèn)文件類型,默認(rèn)為text/plain

? ? ? ? #access_log off; #取消服務(wù)日志? ?

? ? ? ? log_format myFormat ' $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 myFormat;? #combined為日志格式的默認(rèn)值

? ? ? ? sendfile on;? #允許sendfile方式傳輸文件伊脓,默認(rèn)為off府寒,可以在http塊,server塊报腔,location塊株搔。

? ? ? ? sendfile_max_chunk 100k;? #每個(gè)進(jìn)程每次調(diào)用傳輸數(shù)量不能大于設(shè)定的值,默認(rèn)為0纯蛾,即不設(shè)上限纤房。

? ? ? ? keepalive_timeout 65;? #連接超時(shí)時(shí)間,默認(rèn)為75s翻诉,可以在http炮姨,server,location塊碰煌。

? ? ? ? proxy_connect_timeout 1;? #nginx服務(wù)器與被代理的服務(wù)器建立連接的超時(shí)時(shí)間舒岸,默認(rèn)60秒

? ? ? ? proxy_read_timeout 1; #nginx服務(wù)器想被代理服務(wù)器組發(fā)出read請(qǐng)求后,等待響應(yīng)的超時(shí)間芦圾,默認(rèn)為60秒蛾派。

? ? ? ? proxy_send_timeout 1; #nginx服務(wù)器想被代理服務(wù)器組發(fā)出write請(qǐng)求后,等待響應(yīng)的超時(shí)間堕扶,默認(rèn)為60秒碍脏。

? ? ? ? proxy_http_version 1.0 ; #Nginx服務(wù)器提供代理服務(wù)的http協(xié)議版本1.0梭依,1.1稍算,默認(rèn)設(shè)置為1.0版本。

? ? ? ? #proxy_method get;? ? #支持客戶端的請(qǐng)求方法役拴。post/get糊探;

? ? ? ? proxy_ignore_client_abort on;? #客戶端斷網(wǎng)時(shí),nginx服務(wù)器是否終端對(duì)被代理服務(wù)器的請(qǐng)求河闰。默認(rèn)為off科平。

? ? ? ? proxy_ignore_headers "Expires" "Set-Cookie";? #Nginx服務(wù)器不處理設(shè)置的http相應(yīng)投中的頭域,這里空格隔開可以設(shè)置多個(gè)姜性。

? ? ? ? proxy_intercept_errors on;? ? #如果被代理服務(wù)器返回的狀態(tài)碼為400或者大于400瞪慧,設(shè)置的error_page配置起作用。默認(rèn)為off部念。

? ? ? ? proxy_headers_hash_max_size 1024; #存放http報(bào)文頭的哈希表容量上限弃酌,默認(rèn)為512個(gè)字符氨菇。

? ? ? ? proxy_headers_hash_bucket_size 128; #nginx服務(wù)器申請(qǐng)存放http報(bào)文頭的哈希表容量大小。默認(rèn)為64個(gè)字符妓湘。

? ? ? ? proxy_next_upstream timeout;? #反向代理upstream中設(shè)置的服務(wù)器組查蓉,出現(xiàn)故障時(shí),被代理服務(wù)器返回的狀態(tài)值榜贴。error|timeout|invalid_header|http_500|http_502|http_503|http_504|http_404|off

? ? ? ? #proxy_ssl_session_reuse on; 默認(rèn)為on豌研,如果我們?cè)阱e(cuò)誤日志中發(fā)現(xiàn)“SSL3_GET_FINSHED:digest check failed”的情況時(shí),可以將該指令設(shè)置為off唬党。

upstream web {

? ? # 默認(rèn)以輪詢策

? ? server 192.168.110.251 ;

? ? server 192.168.110.252 backup;

}

server {

? ? ? ? listen? ? ? 80;

? ? # 服務(wù)器名稱鹃共,隨便起名

? ? ? ? server_name? www.proxy.com;

? ? ? ? #charset koi8-r;

? ? ? ? #access_log? logs/host.access.log? main;

? ? ? ? location / {

? ? ? ? ? # root? html;

? ? ? ? ? # index? index.html index.htm;

? ? ? ? ? #設(shè)置主機(jī)頭和客戶端真實(shí)地址,以便服務(wù)器獲取客戶端真實(shí)IP

? ? ? ? ? proxy_set_header Host $host;

? ? ? ? ? proxy_set_header X-Real-IP $remote_addr;

? ? ? ? ? proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

? ? ? ? ? #禁用緩存

? ? ? ? ? proxy_buffering off;

? ? ? ? ? # 反向代理的地址

? ? ? ? ? proxy_pass http://web;

? ? ? ? }

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末驶拱,一起剝皮案震驚了整個(gè)濱河市及汉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌屯烦,老刑警劉巖坷随,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異驻龟,居然都是意外死亡温眉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門翁狐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來类溢,“玉大人,你說我怎么就攤上這事露懒〈忱洌” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵懈词,是天一觀的道長(zhǎng)蛇耀。 經(jīng)常有香客問我,道長(zhǎng)坎弯,這世上最難降的妖魔是什么纺涤? 我笑而不...
    開封第一講書人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮抠忘,結(jié)果婚禮上撩炊,老公的妹妹穿的比我還像新娘。我一直安慰自己崎脉,他們只是感情好拧咳,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著囚灼,像睡著了一般骆膝。 火紅的嫁衣襯著肌膚如雪砾淌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評(píng)論 1 290
  • 那天谭网,我揣著相機(jī)與錄音汪厨,去河邊找鬼。 笑死愉择,一個(gè)胖子當(dāng)著我的面吹牛劫乱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锥涕,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼衷戈,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了层坠?” 一聲冷哼從身側(cè)響起殖妇,我...
    開封第一講書人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎破花,沒想到半個(gè)月后谦趣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡座每,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年前鹅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片峭梳。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡舰绘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出葱椭,到底是詐尸還是另有隱情捂寿,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布孵运,位于F島的核電站秦陋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏掐松。R本人自食惡果不足惜踱侣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望大磺。 院中可真熱鬧,春花似錦探膊、人聲如沸杠愧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽流济。三九已至锐锣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绳瘟,已是汗流浹背雕憔。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留糖声,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像拇砰,于是被迫代替她去往敵國(guó)和親脱篙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容