亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 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實現動靜分離的示例代碼的相關信息資訊供網民參考!
  • 推薦文章
    欧美a级片视频| 国产一区二区精品久久| 国产不卡在线看| 成人a大片高清在线观看| 中文字幕Aⅴ资源网| 精品国产三级a| 欧美国产日韩在线| 欧美一级视频免费| 国产亚洲男人的天堂在线观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产伦精品一区三区视频| 可以免费在线看黄的网站| 欧美另类videosbestsex| a级毛片免费观看网站| 亚欧成人毛片一区二区三区四区| 99久久精品国产高清一区二区| 亚洲精品中文一区不卡| 久久国产一区二区| 日韩欧美一二三区| 国产不卡在线观看| 在线观看导航| 欧美激情伊人| 成人高清视频免费观看| 毛片高清| 九九九国产| 色综合久久手机在线| 精品国产一区二区三区精东影业| 国产激情一区二区三区| 麻豆网站在线看| 免费一级生活片| 国产a免费观看| 亚洲天堂在线播放| 欧美大片一区| 国产精品1024永久免费视频| 国产网站免费| 亚洲精品影院久久久久久| 黄视频网站免费| 日韩在线观看免费| 日韩中文字幕在线播放| 久久99青青久久99久久| 日韩免费片| 日本特黄特色aaa大片免费| 日韩中文字幕在线播放| 色综合久久天天综合观看| 可以免费看毛片的网站| 欧美激情一区二区三区在线| 91麻豆精品国产高清在线| 天天色色网| 欧美激情一区二区三区视频 | 青青青草影院| 精品视频免费在线| 日韩免费在线观看视频| 精品国产一区二区三区久| 亚欧成人乱码一区二区| 欧美激情一区二区三区视频高清| 日本伦理网站| 成人在激情在线视频| 亚洲女人国产香蕉久久精品 | 成人av在线播放| 精品国产一区二区三区久| 国产成人精品综合久久久| 美女免费黄网站| 精品视频在线观看视频免费视频| 国产一级生活片| a级精品九九九大片免费看| 日韩专区一区| 国产精品自拍亚洲| 国产一区二区福利久久| 韩国毛片免费| 欧美大片a一级毛片视频| 一级毛片视频在线观看| 尤物视频网站在线观看| 你懂的日韩| 国产视频久久久| 九九免费精品视频| 成人a大片在线观看| 九九精品影院| 久久99青青久久99久久| 精品视频在线观看视频免费视频| 国产网站免费视频| 欧美日本二区| 天天做日日爱| 欧美国产日韩在线| 欧美a免费| 欧美爱色| 天天做日日干| 欧美国产日韩在线| 免费国产在线观看| 国产福利免费观看| 成人免费观看网欧美片| 久久国产精品永久免费网站| 日韩欧美一二三区| 国产不卡福利| 日本特黄特色aa大片免费| 91麻豆国产| 精品视频在线观看一区二区| 中文字幕一区二区三区 精品| 亚洲第一视频在线播放| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 精品视频在线观看一区二区 | 免费毛片播放| 日韩中文字幕一区| 国产一级生活片| 一本高清在线| 高清一级片| 99久久精品国产麻豆| 沈樵在线观看福利| 国产欧美精品| 成人免费高清视频| 国产麻豆精品hdvideoss| 欧美日本免费| 久久久久久久免费视频| 精品国产一区二区三区久久久蜜臀| 天天色色网| 欧美日本免费| 91麻豆爱豆果冻天美星空| 欧美激情一区二区三区视频| 91麻豆精品国产片在线观看| 91麻豆精品国产自产在线观看一区| 国产亚洲精品成人a在线| 精品国产三级a∨在线观看| 91麻豆爱豆果冻天美星空| 久久久久久久免费视频| 你懂的日韩| 精品国产一区二区三区国产馆| 一a一级片| 一级片片| 久草免费在线视频| 黄视频网站在线观看| 美女免费黄网站| 四虎精品在线观看| 国产极品精频在线观看| 午夜在线影院| 黄视频网站免费观看| 亚欧视频在线| 日韩av片免费播放| 九九精品在线播放| 99久久精品国产高清一区二区| 美女免费精品视频在线观看| 日韩在线观看视频免费| 精品视频在线观看免费| 国产高清视频免费| 毛片成人永久免费视频| 精品在线免费播放| 亚洲 欧美 91| 久久精品大片| 国产伦理精品| 欧美激情一区二区三区视频| 沈樵在线观看福利| 一级女人毛片人一女人| 欧美大片一区| 国产一区精品| 欧美日本韩国| 国产一区免费观看| 成人免费网站视频ww| 午夜精品国产自在现线拍| 久草免费资源| 日韩av片免费播放| 欧美日本韩国| 精品国产三级a| 成人在激情在线视频| 九九久久99综合一区二区| 欧美国产日韩一区二区三区| 国产福利免费视频| 国产伦精品一区二区三区在线观看| 可以在线看黄的网站| 精品视频在线观看一区二区 | 国产激情一区二区三区| 午夜欧美成人久久久久久| 尤物视频网站在线观看| 国产精品1024永久免费视频| 国产精品1024永久免费视频 | 日韩avdvd| 久久精品欧美一区二区| 成人免费高清视频| 精品久久久久久综合网| 99久久精品国产国产毛片| 精品视频在线观看一区二区三区| 欧美一区二区三区性| 久久精品免视看国产明星| 久草免费资源| 国产麻豆精品hdvideoss| 国产精品12| 麻豆网站在线免费观看| 久久国产精品只做精品| 国产不卡在线播放| 精品视频免费在线| 黄视频网站免费| 夜夜操网| 欧美1区| 黄色免费网站在线| 日韩中文字幕一区二区不卡| 久久成人亚洲| 四虎影视库| 国产网站免费视频| 亚洲 欧美 91| 亚洲天堂免费观看| 一a一级片| 国产一区二区精品久久91| 精品国产亚洲人成在线|