婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > nginx實現動靜分離的示例代碼

nginx實現動靜分離的示例代碼

熱門標簽:網絡電話外呼系統開發 北海智能電銷機器人公司 福州語音電銷機器人招商 申請400電話收費標 艾澤拉斯地圖標注 菏澤自動電銷機器人公司 淘寶辦理400電話是多少 外呼線路隨意切換嗎 滴滴急救中心地圖標注

一、簡單配置nginx的動靜分離

假設web1為靜態服務器,web2為動態服務器,node2做代理

1.1 根據目錄分開

web1只處理靜態請求

[root@web1 ~]# mkdir -p /var/www/www/image
[root@web1 ~]# yum -y install lrzsz
[root@web1 ~]# cd /var/www/www/image/
[root@web1 image]# rz
[root@web1 image]# ll
-rw-r--r--. 1 root root 156848 Mar 13 11:31 nhrzyx.png
[root@web2 ~]# vim /etc/httpd/conf/httpd.conf 
 DocumentRoot "/var/www/www"
[root@web2 ~]# systemctl restart httpd

web2只處理動態請求

[root@web2 ~]# mkdir -p /var/www/www/dynamic
[root@web2 ~]# echo dynamic10 > /var/www/www/dynamic/index.html
[root@web2 ~]# vim /etc/httpd/conf/httpd.conf 
 DocumentRoot "/var/www/www"
[root@web2 ~]# systemctl restart httpd

訪問測試

http://172.25.254.134/image/nhrzyx.png

http://172.25.254.135/dynamic/index.html

1.2 通過請求分離

配置代理

[root@lb01 conf]# vim nginx.conf
worker_processes 1;
events {
  worker_connections 1024;
}
http {
  include    mime.types;
  default_type application/octet-stream;
  sendfile    on;
  keepalive_timeout 65;
upstream stack_pools {
    server 172.25.254.134:80 weight=5;
}
upstream dynamic_pools {
    server 172.25.254.135:80 weight=5;
}
  server {
    listen    80;
    server_name www.lbtest.com;
    location / {
      root  html;
      index index.html index.htm;
      proxy_set_header Host $host;
      proxy_pass http://dynamic_pools;
    }
    location /image/ {
      proxy_set_header Host $host;
    proxy_pass http://stack_pools;
    }
    location /dynamic/ {
      proxy_set_header Host $host;
    proxy_pass http://dynamic_pools;
    }
  }
}
[root@lb01 conf]# nginx -s reload

配置hosts ,瀏覽器訪問測試

172.25.254.131 www.lbtest.com

http://www.lbtest.com/image/nhrzyx.png

http://www.lbtest.com/dynamic/

1.3 根據擴展名分離

[root@lb01 conf]# vim nginx.conf

worker_processes 1;
events {
  worker_connections 1024;
}
http {
  include    mime.types;
  default_type application/octet-stream;
  sendfile    on;
  keepalive_timeout 65;
upstream stack_pools {
    server 172.25.254.134:80 weight=5;
}
upstream dynamic_pools {
    server 172.25.254.135:80 weight=5;
}
  server {
    listen    80;
    server_name www.lbtest.com;
    location / {
      root  html;
      index index.html index.htm;
      proxy_set_header Host $host;
      proxy_pass http://dynamic_pools;
    }
    location ~ .*.(jpg|png|gif|css|js|swf|bmp|jsp|php|asp)$ {
    proxy_set_header Host $host;
    proxy_pass http://stack_pools;
    }
  }
}
[root@lb01 conf]# nginx -s reload

http://www.lbtest.com/image/nhrzyx.png 

1.4 根據客戶端標識進行分離

http {
  include    mime.types;
  default_type application/octet-stream;
  sendfile    on;
  keepalive_timeout 65;
upstream stack_pools {
    server 172.25.254.134:80 weight=5;
}
upstream dynamic_pools {
    server 172.25.254.135:80 weight=5;
}
  server {
    listen    80;
    server_name www.lbtest.com;
    location / {
        if ($http_user_agent ~* "MSIE")
        {
            proxy_pass http://dynamic_pools;
        }
        if ($http_user_agent ~* "firefox")
        {
            proxy_pass http://stack_pools;
        }
    }
    proxy_set_header Host $host;
    }
}
[root@web1 image]# echo stack_web>> /var/www/www/test.html
[root@web1 image]# systemctl restart httpd

[root@web2 ~]# echo dynamic_web>>/var/www/www/test.html
[root@web2 ~]# systemctl restart httpd

分別使用IE和火狐瀏覽器訪問

http://www.lbtest.com/test.html

1.5 使用客戶端的pc和移動分離

http {
  include    mime.types;
  default_type application/octet-stream;
  sendfile    on;
  keepalive_timeout 65;
upstream stack_pools {
    server 172.25.254.134:80 weight=5;
}
upstream dynamic_pools {
    server 172.25.254.135:80 weight=5;
}
  server {
    listen    80;
    server_name www.lbtest.com;
    location / {
        if ($http_user_agent ~* "iphone")
        {
            proxy_pass http://dynamic_pools;
        }
        if ($http_user_agent ~* "android")
        {
            proxy_pass http://stack_pools;
        }
    }
    proxy_set_header Host $host;
    }
}

分別使用安卓和iphone訪問測試

http://www.lbtest.com/test.html

二 、優化

[root@node2 ~]# vim /etc/sysctl.conf

net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time =600
net.ipv4.ip_local_port_range = 4000 65000
net.ipv4.tcp_max_syn_backlog = 16348
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_max_orphans = 16384
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 18364

[root@node2 ~]# sysctl -p

簡單介紹keepalive和nginx

配置keepalived實現nginx負載均衡的高可用

keepalive更適合于見得IP漂移,如果資源服務有控制,heartbeat更適合,比如存儲方向的高可用

三、 nginx反向代理的健康檢查

nginx做反向代理的時候,當后端就的服務器出現宕機的時候,ngixn不能把這臺realserver剔除upstream的,所以還會把請求轉發到后端的這臺realserve上,雖然nginx可以在localtion中啟用proxy_next_upstream來解決返回給客戶的錯誤頁面,但這個還會會把請求轉發轉給這臺服務器,然后再轉發別的服務器,這樣就浪費了一次轉發,借助淘寶團隊開發的nginx模塊nginx_upstream_check_module來檢測后方的realserver的健康狀態,如果后端服務器不可用,則所有的請求不轉發到這臺服務器

check interval=5000 rise=1 fall=3 timeout=4000;

3.1 直接添加到配置文件

[root@node2 ~]# vim /usr/local/nginx/conf/nginx.conf

worker_processes 1;
events {
  worker_connections 1024;
}
http {
  include    mime.types;
  default_type application/octet-stream;
  sendfile    on;
  keepalive_timeout 65;
upstream web_pools {
    server 172.25.254.134:80 weight=5;
    server 172.25.254.135:80 weight=5;
#    server 172.25.254.158:80 weight=5 backup;
check interval=5000 rise=1 fall=3 timeout=4000;

}
  server {
    listen    80;
    server_name www.lbtest.com;
    location / {
      # root  html;
      # index index.html index.htm;
      proxy_set_header Host $host;
      proxy_pass http://web_pools;
    }
  }
}

[root@node2 ~]# nginx -t

nginx: [emerg] unknown directive "check" in /usr/local/nginx/conf/nginx.conf:14
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed 

檢查失敗

下載nginx的模塊https://github.com/yaoweibin/nginx_upstream_check_module,使用nginx打上模塊的安裝,當做nginx的升級

3.2 下載模塊

[root@node2 nginx-1.12.2]# yum -y install git

[root@node2 nginx-1.12.2]# git clone https://github.com/yaoweibin/nginx_upstream_check_module.git

[root@node2 nginx-1.12.2]# ll
drwxr-xr-x. 7 root root 4096 Apr 13 00:57 nginx_upstream_check_module
[root@node2 nginx-1.12.2]# cd nginx_upstream_check_module/

[root@node2 nginx_upstream_check_module]# ll
-rw-r--r--. 1 root root   0 Apr 13 00:57 CHANGES
-rw-r--r--. 1 root root  7921 Apr 13 00:57 check_1.11.1+.patch
-rw-r--r--. 1 root root  8330 Apr 13 00:57 check_1.11.5+.patch
-rw-r--r--. 1 root root  8060 Apr 13 00:57 check_1.12.1+.patch
-rw-r--r--. 1 root root  8054 Apr 13 00:57 check_1.14.0+.patch
-rw-r--r--. 1 root root  5483 Apr 13 00:57 check_1.2.1.patch
-rw-r--r--. 1 root root  7130 Apr 13 00:57 check_1.2.2+.patch
-rw-r--r--. 1 root root  7094 Apr 13 00:57 check_1.2.6+.patch
-rw-r--r--. 1 root root  6791 Apr 13 00:57 check_1.5.12+.patch
-rw-r--r--. 1 root root  8295 Apr 13 00:57 check_1.7.2+.patch
-rw-r--r--. 1 root root  8346 Apr 13 00:57 check_1.7.5+.patch
-rw-r--r--. 1 root root  8509 Apr 13 00:57 check_1.9.2+.patch
-rw-r--r--. 1 root root  6943 Apr 13 00:57 check.patch
-rw-r--r--. 1 root root  749 Apr 13 00:57 config
drwxr-xr-x. 2 root root   43 Apr 13 00:57 doc
-rw-r--r--. 1 root root  1709 Apr 13 00:57 nginx-sticky-module.patch
drwxr-xr-x. 2 root root   29 Apr 13 00:57 nginx-tests
-rw-r--r--. 1 root root 112010 Apr 13 00:57 ngx_http_upstream_check_module.c
-rw-r--r--. 1 root root  529 Apr 13 00:57 ngx_http_upstream_check_module.h
-rw-r--r--. 1 root root  2848 Apr 13 00:57 ngx_http_upstream_jvm_route_module.patch
-rw-r--r--. 1 root root 11509 Apr 13 00:57 README
drwxr-xr-x. 6 root root   79 Apr 13 00:57 test
-rw-r--r--. 1 root root  3342 Apr 13 00:57 upstream_fair.patch
drwxr-xr-x. 2 root root   81 Apr 13 00:57 util

3.3 打補丁

[root@node2 nginx_upstream_check_module]# cd ../

[root@node2 nginx-1.12.2]# yum -y install patch

注:因nginx版本更新,1.12以上版本的nginx,補丁為check_1.11.5+.patch

[root@node2 nginx-1.12.2]# patch -p0 < ./nginx_upstream_check_module/check_1.11.5+.patch

patching file src/http/modules/ngx_http_upstream_hash_module.c
patching file src/http/modules/ngx_http_upstream_ip_hash_module.c
patching file src/http/modules/ngx_http_upstream_least_conn_module.c
patching file src/http/ngx_http_upstream_round_robin.c
patching file src/http/ngx_http_upstream_round_robin.h

3.4 編譯安裝

[root@node2 nginx-1.12.2]# ./configure --prefix=/usr/local/nginx \

> --user=nginx --group=nginx \

> --with-http_ssl_module \

> --with-http_realip_module \

> --with-http_addition_module \

> --with-http_gzip_static_module \

> --with-http_stub_status_module \

> --with-http_sub_module \

> --with-pcre \

> --add-module=./nginx_upstream_check_module

出現一個新的目錄 為objs

[root@node2 nginx-1.12.2]# ll

drwxr-xr-x. 4 root  root   187 Apr 13 01:04 objs

[root@node2 nginx-1.12.2]# make

sed -e "s|%%PREFIX%%|/usr/local/nginx|" \

  -e "s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|" \

  -e "s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|" \

  -e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|" \

  < man/nginx.8 > objs/nginx.8
make[1]: Leaving directory `/usr/local/src/nginx-1.12.2'

[root@node2 nginx-1.12.2]# ll objs/

drwxr-xr-x. 3 root root   41 Apr 13 01:04 addon
-rw-r--r--. 1 root root  16895 Apr 13 01:04 autoconf.err
-rw-r--r--. 1 root root  42396 Apr 13 01:04 Makefile
-rwxr-xr-x. 1 root root 5993600 Apr 13 01:06 nginx  #nginx新的可執行文件
-rw-r--r--. 1 root root  5341 Apr 13 01:06 nginx.8
-rw-r--r--. 1 root root  7202 Apr 13 01:04 ngx_auto_config.h
-rw-r--r--. 1 root root   657 Apr 13 01:03 ngx_auto_headers.h
-rw-r--r--. 1 root root  6412 Apr 13 01:04 ngx_modules.c
-rw-r--r--. 1 root root  87120 Apr 13 01:06 ngx_modules.o
drwxr-xr-x. 9 root root   91 Apr 3 22:38 src

備份就得ngxin,并拷貝新的nginx

[root@node2 nginx-1.12.2]# cd /usr/local/nginx/sbin/

[root@node2 sbin]# mv nginx nginx.bak

[root@node2 sbin]# cp /usr/local/src/nginx-1.12.2/objs/nginx /usr/local/nginx/sbin

[root@node2 sbin]# /usr/local/nginx/sbin/nginx -s stop

nginx: [emerg] getpwnam("nginx") failed

[root@node2 sbin]# id nginx

id: nginx: no such user

[root@node2 sbin]# useradd nginx

[root@node2 sbin]# id nginx

uid=1002(nginx) gid=1002(nginx) groups=1002(nginx)

[root@node2 sbin]# /usr/local/nginx/sbin/nginx -s stop

[root@node2 sbin]# /usr/local/nginx/sbin/nginx

[root@node2 ~]# nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

成功安裝

3.5 配置

worker_processes 1;
events {
  worker_connections 1024;
}
http {
  include    mime.types;
  default_type application/octet-stream;
  sendfile    on;
  keepalive_timeout 65;
upstream web_pools {
    server 172.25.254.134:80 weight=5;
    server 172.25.254.135:80 weight=5;
#    server 172.25.254.158:80 weight=5 backup;
check interval=5000 rise=1 fall=3 timeout=4000;

}
  server {
    listen    80;
    server_name www.lbtest.com;
    location / {
      proxy_set_header Host $host;
      proxy_pass http://web_pools;
    }
    location /nstatus{
    check_status;
    access_log off;
    }
  }
}
[root@node2 conf]# nginx -s reload

3.6 訪問測試

兩個狀態正常

關掉一個

[root@web1 image]# systemctl stop httpd

關掉兩個

[root@web2 ~]# systemctl stop httpd

開啟一個

[root@web1 image]# systemctl start httpd

[root@web2 ~]# systemctl restart httpd

成功實現后端檢查功能

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:三沙 延安 賀州 亳州 混顯 資陽 滄州 丹東

巨人網絡通訊聲明:本文標題《nginx實現動靜分離的示例代碼》,本文關鍵詞  nginx,實現,動靜,分離,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《nginx實現動靜分離的示例代碼》相關的同類信息!
  • 本頁收集關于nginx實現動靜分離的示例代碼的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    蜜臀av亚洲一区中文字幕| 亚洲一区二区在线播放相泽| 一区二区三区国产豹纹内裤在线| 久久久久一区二区三区四区| 在线电影院国产精品| 制服丝袜日韩国产| 亚洲欧美日韩小说| 美女看a上一区| 91丨porny丨户外露出| 日韩一区和二区| 亚洲蜜臀av乱码久久精品蜜桃| 夜夜精品视频一区二区| 国产成人精品亚洲777人妖| 欧美综合亚洲图片综合区| 欧美国产日韩在线观看| 日韩国产一区二| 欧美日韩国产另类一区| 欧美日韩极品在线观看一区| 国产精品久久久久aaaa樱花| 亚洲精品乱码久久久久久黑人| 肉色丝袜一区二区| 911精品国产一区二区在线| 一区二区三区四区中文字幕| 成人性生交大片免费| 久久久久久免费网| 大白屁股一区二区视频| 欧美成人女星排行榜| 国产精品伦理在线| 在线观看日韩电影| 亚洲在线免费播放| 67194成人在线观看| 久热成人在线视频| 国产精品麻豆视频| 欧美日本在线一区| 激情成人综合网| 亚洲精品精品亚洲| 精品奇米国产一区二区三区| 蜜桃视频一区二区| 日韩欧美在线综合网| 精品无人区卡一卡二卡三乱码免费卡 | 久久精工是国产品牌吗| 91女厕偷拍女厕偷拍高清| 亚洲一区二三区| 日韩欧美在线一区二区三区| 国产成人日日夜夜| 日韩电影网1区2区| 亚洲人妖av一区二区| 91精品欧美一区二区三区综合在| 国产麻豆精品theporn| 污片在线观看一区二区| 亚洲激情第一区| 国产精品久久久久桃色tv| 精品成人在线观看| 粉嫩久久99精品久久久久久夜| 天天综合色天天综合色h| 久久久久久影视| 日韩午夜av一区| 欧美成人精品1314www| 在线精品观看国产| 一本一道综合狠狠老| 99久久精品国产导航| 日韩一级二级三级| 日韩一区二区电影| 国产网站一区二区| 国产精品理伦片| **性色生活片久久毛片| 国产在线麻豆精品观看| 国产成人午夜高潮毛片| 亚洲成人一区二区| 国产呦精品一区二区三区网站| 成人精品gif动图一区| 色噜噜狠狠成人网p站| 久久先锋资源网| 亚洲一卡二卡三卡四卡无卡久久| 日韩av一二三| 在线观看视频91| 中文字幕二三区不卡| 久88久久88久久久| 在线播放91灌醉迷j高跟美女 | 在线观看亚洲成人| 亚洲三级电影全部在线观看高清| 久久精品国产免费| 宅男噜噜噜66一区二区66| 亚洲狠狠爱一区二区三区| 成人精品gif动图一区| 国产精品婷婷午夜在线观看| 国产精品一区久久久久| 久久亚洲二区三区| 国产一区中文字幕| 久久久久久99精品| youjizz久久| 中文字幕欧美一| 色94色欧美sute亚洲13| 欧美国产国产综合| 在线亚洲免费视频| 日本不卡在线视频| 国产日本欧洲亚洲| 一本色道a无线码一区v| 亚洲成人自拍偷拍| 精品久久久久久久一区二区蜜臀| 国内精品写真在线观看| 1024成人网色www| 欧美日韩国产大片| 99久久精品国产麻豆演员表| 午夜视频一区二区| 亚洲人成网站精品片在线观看| 欧美精品日日鲁夜夜添| 国产成人免费视频网站高清观看视频 | 欧美一区二区三区免费在线看| 久久 天天综合| 日韩中文字幕亚洲一区二区va在线| 91福利国产精品| 色呦呦国产精品| 国产精品亚洲专一区二区三区| 色噜噜久久综合| 色综合久久久久久久久| 成人高清视频在线| 成人毛片视频在线观看| 国内精品免费在线观看| 久久精品国产亚洲a| 日韩av在线发布| 久久精品久久久精品美女| 午夜精品福利视频网站| 一区二区三区在线高清| 亚洲欧洲av一区二区三区久久| 国产精品天天摸av网| 亚洲欧美偷拍卡通变态| 国产欧美日韩另类视频免费观看| 精品99久久久久久| 国产亚洲精品bt天堂精选| 国产精品毛片久久久久久久| 国产精品久久久99| 亚洲激情欧美激情| 极品美女销魂一区二区三区| 精品亚洲成a人在线观看| 成人app软件下载大全免费| 色综合天天综合网国产成人综合天| 色综合天天做天天爱| 91麻豆精品久久久久蜜臀| 日韩一级视频免费观看在线| 中文字幕av资源一区| 五月开心婷婷久久| 91天堂素人约啪| 欧美成人a∨高清免费观看| 欧美国产日韩亚洲一区| 日一区二区三区| 色婷婷久久久久swag精品| 久久新电视剧免费观看| 亚洲一区二区高清| av综合在线播放| 欧美精品一区二区三区很污很色的| 亚洲天堂免费看| 成人h版在线观看| 亚洲精品在线三区| 毛片av一区二区三区| 在线精品视频一区二区三四| 国产精品国产三级国产aⅴ原创 | 一区二区三区四区亚洲| 精品制服美女久久| 日韩一区二区三区高清免费看看| 玉米视频成人免费看| 欧美xxxxxxxxx| 中文字幕一区二区三区不卡在线| 5566中文字幕一区二区电影| 日韩一区二区免费在线电影| 国产成人激情av| 日韩av电影免费观看高清完整版在线观看| 最新国产精品久久精品| 首页国产欧美日韩丝袜| 一区二区三区高清在线| 久久综合五月天婷婷伊人| 91 com成人网| 亚洲国产你懂的| 蜜桃久久av一区| 大陆成人av片| 国产成人aaa| 成人性生交大片| 亚洲精品成人悠悠色影视| 色综合欧美在线视频区| 免费在线看成人av| 国产欧美一区二区三区网站| 欧美日韩黄视频| 不卡高清视频专区| 国产电影一区在线| 蜜桃av一区二区| 精品一区二区综合| 亚洲综合av网| 国产成人自拍网| 日韩av网站免费在线| 亚洲一区二区黄色| 夜夜操天天操亚洲| 亚洲国产高清在线| 中文字幕不卡在线观看| 日韩视频免费观看高清在线视频| 91视频91自| 欧美综合久久久| 欧美一级在线免费| 欧美一级理论片| 久久免费精品国产久精品久久久久| 51精品秘密在线观看|