国产精品吹潮在线播放,日韩一区二区三区在线播放,啊级免费黄片视频,66av视频

網(wǎng)站首頁
手機(jī)版

nginx反向代理配置詳解(nginx反向代理規(guī)則)

更新時間:2023-06-03 09:04:43作者:未知

nginx反向代理配置詳解(nginx反向代理規(guī)則)

  1.簡介

  本篇博文是《nginx實現(xiàn)動態(tài)/靜態(tài)文件緩存-技術(shù)流ken》的二部曲。將詳細(xì)介紹nginx如何實現(xiàn)反向代理以及負(fù)載均衡技術(shù),并輔以實戰(zhàn)案例。反向代理--“反向代理(Reverse Proxy)方式是指以代理服務(wù)器來接受internet上的連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給internet上請求連接的客戶端,此時代理服務(wù)器對外就表現(xiàn)為一個反向代理服務(wù)器。”負(fù)載均衡--“網(wǎng)絡(luò)專用術(shù)語,負(fù)載均衡建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種廉價有效透明的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性?!?.nginx實現(xiàn)反向代理

  1.幾個概念反向代理:在收到客戶端請求之后,會修目標(biāo)IP地址和端口正向代理:在收到客戶端請求之后,會修源IP地址和端口上游服務(wù)器:代理服務(wù)器后端的哪些真正給客戶端提供服務(wù)的節(jié)點(diǎn),這樣的服務(wù)器稱之為上游服務(wù)器下游服務(wù)器:客戶端就是下游節(jié)點(diǎn)2.反向代理指令模塊:nginx_http_proxy_module 指令 proxy_pass:指定上游服務(wù)器的ip和端口 proxy_set_header:指定在重新封裝請求報文的時候,添加一個新的首部 Syntax: proxy_pass URL; Default: — Context: location, if in location, limit_except 例子:proxy_pass http://10.220.5.200:80; Syntax: proxy_set_header field value; Default: proxy_set_header Host $proxy_host; Context: http, server, location

  3.反向代理簡單示例location / { proxy_pass http://10.220.5.180; proxy_set_header X-Real-IP $remote_addr proxy_set_header Host $proxy_host; }

  4.反向代理實戰(zhàn)案例1.環(huán)境準(zhǔn)備centos7.5反向代理服務(wù)器IP:172.20.10.7/28web1服務(wù)器IP:172.20.10.8/28web2服務(wù)器IP:172.20.10.9/282.配置反向代理服務(wù)器端yum安裝nignx需要配置網(wǎng)絡(luò)源,復(fù)制下面的代碼到你的yum倉庫中[ken]name=kenenabled=1gpgcheck=0baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/

  安裝nginx[root@ken ~]# yum install nginx -y

  配置nginx文件,我們實現(xiàn)這樣一個效果,靜態(tài)文件都被代理到172.20.10.8,動態(tài)文件都被調(diào)度到172.20.10.9,實現(xiàn)動靜分離。[root@ken ~]# vim /etc/nginx/nginx.conf# For more information on configuration, see:# * Official English Documentation: http://nginx.org/en/docs/# * Official Russian Documentation: http://nginx.org/ru/docs/user nginx;worker_processes auto;error_log /var/log/nginx/error.log;pid /run/nginx.pid;# Load dynamic modules. See /usr/share/nginx/README.dynamic.include /usr/share/nginx/modules/*.conf;events { worker_connections 1024;}http { 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 /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # include /etc/nginx/conf.d/*.conf; server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /var/www/html; index index.html index.php; # Load configuration files for the default server block. location / { proxy_pass http://172.20.10.8; proxy_set_header host $proxy_host; proxy_set_header realip $remote_addr; } location ~^/.*(\.php)$ { proxy_pass http://172.20.10.9; proxy_set_header host $proxy_host; proxy_set_header realip $remote_addr; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }}

  進(jìn)行語法檢測[root@ken ~]# nginx -tnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful

  檢查沒有問題之后進(jìn)行重啟[root@ken ~]# systemctl start nginx

  3.配置web服務(wù)器端安裝apache[root@ken ~]# yum install httpd -y

  準(zhǔn)備測試文件,172.20.10.8準(zhǔn)備靜態(tài)文件[root@ken ~]# echo "this is 172.20.10.8 for static test">/var/www/html/index.html

  172.20.10.9需要下載php以便支持動態(tài)文件[root@ken html]# yum install php -y

  172.20.10.9準(zhǔn)備動態(tài)文件,[root@ken ~]# cd /var/www/html/[root@ken html]# vim index.php

  4.web服務(wù)器重啟[root@ken html]# systemctl restart httpd

  5.關(guān)閉安全服務(wù)[root@ken ~]# iptables -F

  6.瀏覽器測試請求靜態(tài)文件測試

nginx反向代理配置詳解(nginx反向代理解決方案)(1)

靜態(tài)文件請求已經(jīng)成功轉(zhuǎn)發(fā)至172.20.10.8。測試成功!請求動態(tài)文件測試

nginx反向代理配置詳解(nginx反向代理解決方案)(2)

動態(tài)文件請求已經(jīng)成功轉(zhuǎn)發(fā)至172.20.10.9.測試成功!7.補(bǔ)充補(bǔ)充一補(bǔ)充1: location如下 location /admin { proxy_pass http://www.ken.com/; proxy_pass http://www.ken.com; } 請求的url 是http://www.ken.com/admin/a.html 如果代理方式是 proxy_pass http://www.ken.com/; 那么去www.ken.com的跟目錄下找a.html,/代表完全代理。 如果代理方式是 proxy_pass http://www.ken.com; 那么去www.ken.com的跟目錄下的admin找a.html


  補(bǔ)充二補(bǔ)充2: 如果location中使用了模式匹配(正則),那么,location中的url會直接補(bǔ)充到代理節(jié)點(diǎn)的后面. 此時,上游服務(wù)器的的后面不能有任何內(nèi)容,包括 / location ~ \.php$ { proxy_pass http://www.ken.com; [正則表達(dá)式proxy_pass轉(zhuǎn)發(fā)的地址后面什么都不能加] <<< 正確寫法 proxy_pass http://www.ken.com:80; <<< 正確寫法 proxy_pass http://www.ken.com/; <<< 錯誤寫法 proxy_pass http://www.ken.com/img; <<< 錯誤寫法 } 此時,如果請求的url是 http://www.baidu.com/book/stu/a.php ,就會代理成 http://www.ken.com/book/stu/a.php

  補(bǔ)充三補(bǔ)充3: 在location中如果有重定向的話,那么就用重定向后的uri替換掉代理節(jié)點(diǎn)中的uri location / { rewrite /(.*)$ /index.php?name=$1 break; proxy_pass http://www.baidu.com:80/img; } 此時,如果請求的url是 http://www.ken.com/bajie ,就會代理成 www.baidu.com/index.php?name=bajie

  3.nginx實現(xiàn)負(fù)載均衡

  1.幾個概念調(diào)度器:分發(fā)用戶的請求到一個后端節(jié)點(diǎn)上游服務(wù)器(真實服務(wù)器):每個真正用來處理用戶請求的節(jié)點(diǎn)都是一個上游服務(wù)器CIP:客戶端的IP地址RIP:真實服務(wù)器的IP地址VIP:虛擬IP,用戶所看到的是也是虛擬IP2.指令指令:upstream 作用:定義一個上游服務(wù)器組 格式 upstream name { server 上游服務(wù)器1 參數(shù) 參數(shù); server 上游服務(wù)器1 參數(shù) 參數(shù); server 上游服務(wù)器1 參數(shù) 參數(shù); }

  3.重要參數(shù) weight=#:設(shè)置服務(wù)器的權(quán)重(數(shù)字越大,權(quán)重越高) backup: 設(shè)置服務(wù)器處于備用狀態(tài)(其他節(jié)點(diǎn)出現(xiàn)故障,備用節(jié)點(diǎn)才開始工作) down:設(shè)置讓一個節(jié)點(diǎn)處于離線狀態(tài)(經(jīng)常用在維護(hù)一個節(jié)點(diǎn)的情況下) max_fails=number:設(shè)置連續(xù)幾次轉(zhuǎn)發(fā)失敗就認(rèn)為該節(jié)點(diǎn)出現(xiàn)故障,然后就不再向該節(jié)點(diǎn)轉(zhuǎn)發(fā)用戶請求了 fail_timeout=time: 和上個參數(shù)組合使用,作用是設(shè)置等待上游服務(wù)器響應(yīng)超時時間

  4.nginx實現(xiàn)負(fù)載均衡實戰(zhàn)案例1.環(huán)境準(zhǔn)備centos7.5nginx服務(wù)器IP:172.20.10.7/28web1服務(wù)器端IP:172.20.10.8/28web2服務(wù)器端IP:172.20.10.9/282.配置nginx服務(wù)器端安裝nginx略配置nginx文件[root@ken ~]# vim /etc/nginx/nginx.conf# For more information on configuration, see:# * Official English Documentation: http://nginx.org/en/docs/# * Official Russian Documentation: http://nginx.org/ru/docs/user nginx;worker_processes auto;error_log /var/log/nginx/error.log;pid /run/nginx.pid;# Load dynamic modules. See /usr/share/nginx/README.dynamic.include /usr/share/nginx/modules/*.conf;events { worker_connections 1024;}http { 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 /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # include /etc/nginx/conf.d/*.conf; upstream ken { server 172.20.10.8 weight=1 max_fails=3 fail_timeout=5; server 172.20.10.9 weight=2 max_fails=3 fail_timeout=5; } server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /var/www/html; index index.php index.html; # Load configuration files for the default server block. # include /etc/nginx/default.d/*.conf; location / { proxy_pass http://ken/; proxy_set_header host $proxy_host; proxy_set_header realip $remote_addr; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }}

  語法檢測[root@ken ~]# nginx -tnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful

  重啟nginx[root@ken ~]# systemctl restart nginx

  3.配置web服務(wù)器端略.和上面反向代理配置一樣。4.瀏覽器測試輸入nginx服務(wù)器端的IP地址

nginx反向代理配置詳解(nginx反向代理解決方案)(3)

因為172.20.10.9的權(quán)重為2,即出現(xiàn)兩次172.20.10.9才會出現(xiàn)一次172.20.10.8.進(jìn)行刷新測試

nginx反向代理配置詳解(nginx反向代理解決方案)(4)

測試成功!nginx的三大功能,緩存,反向代理,負(fù)載均衡,已經(jīng)全部講解完畢,是否對nginx有了全新的認(rèn)識那?馬上自己動手實驗一下吧


本文標(biāo)簽: [db:關(guān)鍵詞]