欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx動(dòng)靜分離的示例代碼

 更新時(shí)間:2024年07月02日 11:11:11   作者:TA548464  
動(dòng)靜分離是將網(wǎng)站靜態(tài)資源與后臺(tái)應(yīng)用分開(kāi)部署,本文主要介紹了Nginx動(dòng)靜分離的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

為了加快網(wǎng)站的解析速度,就是把動(dòng)態(tài)頁(yè)面和靜態(tài)頁(yè)面由不同的服務(wù)器來(lái)解析,加快解析速度。降低原來(lái)單個(gè)服務(wù)器的壓力。

簡(jiǎn)單來(lái)說(shuō),就是 使用正則表達(dá)式匹配過(guò)濾,然后交個(gè)不同的服務(wù)器。

1. 準(zhǔn)備環(huán)境

準(zhǔn)備一個(gè)nginx代理 兩個(gè)http 分別處理動(dòng)態(tài)和靜態(tài)

IP作用安裝軟件
192.168.221.130nginx反向代理服務(wù)器nginx
192.168.221.136nginx靜態(tài)資源網(wǎng)站nginx
192.168.221.138nginx動(dòng)態(tài)資源網(wǎng)站php

2. 配置 Nginx 靜態(tài)資源服務(wù)器

expires功能說(shuō)明(為客戶(hù)端配置緩存時(shí)間)

nginx緩存的設(shè)置可以提高網(wǎng)站性能,對(duì)于網(wǎng)站的圖片,尤其是新聞網(wǎng)站,圖片一旦發(fā)布,改動(dòng)的可能是非常小的,為了減小對(duì)服務(wù)器請(qǐng)求的壓力,提高用戶(hù)瀏覽速度,我們可以通過(guò)設(shè)置nginx中的expires,讓用戶(hù)訪問(wèn)一次后,將圖片緩存在用戶(hù)的瀏覽器中,且時(shí)間比較長(zhǎng)的緩存。

原理:當(dāng)nginx設(shè)置了expires后,例如設(shè)置為:expires 10d; 那么用戶(hù)在10天內(nèi)請(qǐng)求的時(shí)候,都只會(huì)訪問(wèn)瀏覽器中的緩存,而不會(huì)去請(qǐng)求nginx。

注:需要注意的是,這種緩存方式只能在用戶(hù)不對(duì)瀏覽器強(qiáng)制刷新的情況下生效,如果用戶(hù)通過(guò)url來(lái)進(jìn)行訪問(wèn),是可以訪問(wèn)到緩存的。

靜態(tài)資源配置(192.168.221.136)

[root@localhost ~]# cd /etc/nginx/conf.d/
[root@localhost conf.d]# cp default.conf  jingtai.conf
[root@localhost conf.d]# vim jingtai.conf
server {
        listen 80;        #注意修改default.conf配置文件中的默認(rèn)端口
        server_name  localhost;

        location ~ \.(html|jpg|png|js|css) {
        root /usr/share/nginx/html/jingtai;
        expires      1d; #為客戶(hù)端設(shè)置靜態(tài)資源緩存時(shí)間
        }
}

//創(chuàng)建圖片存放目錄
[root@localhost ~]# cd /usr/share/nginx/html/
[root@localhost html]# ls
50x.html  index.html
[root@localhost html]# mkdir jingtai

//上傳一張圖片到服務(wù)器中
[root@localhost html]# cd jingtai/
[root@localhost jingtai]# mv 1.png  test.jpg	//隨便放一張圖片

//重啟nginx
[root@localhost conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost conf.d]# systemctl restart nginx

//測(cè)試:
[root@nginx-yum2 conf.d]# curl -I http://192.168.221.136/test.jpg
HTTP/1.1 200 OK
Server: nginx/1.24.0
Date: Thu, 27 Jul 2023 07:49:14 GMT
Content-Type: image/jpeg
Content-Length: 278266
Last-Modified: Wed, 09 Jun 2021 19:59:38 GMT
Connection: keep-alive
ETag: "60c11daa-43efa"
Expires: Fri, 28 Jul 2023 07:49:14 GMT    //緩存到期時(shí)間
Cache-Control: max-age=86400     //緩存持續(xù)時(shí)間秒
Accept-Ranges: bytes

3. 動(dòng)態(tài)資源服務(wù)器配置

3.1. 安裝php-fpm

//動(dòng)態(tài)資源配置:yum 安裝php7.1
[root@localhost ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
[root@localhost ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
[root@localhost ~]# yum install php71w-xsl php71w php71w-ldap php71w-cli php71w-common php71w-devel php71w-gd php71w-pdo php71w-mysql php71w-mbstring php71w-bcmath php71w-mcrypt -y
[root@localhost ~]# yum install -y php71w-fpm
  • PHP-FPM(FastCGI Process Manager:FastCGI進(jìn)程管理器)是一個(gè)PHPFastCGI管理器。
  • 它提供了更好的PHP進(jìn)程管理方式,可以有效控制內(nèi)存和進(jìn)程、可以平滑重載PHP配置。
  • 在日常運(yùn)維中,我們主要將PHP-FPM 的配置文件分為主配置文件和 pool配置文件(每個(gè)pool配置文件通常對(duì)應(yīng)一個(gè)Nginx虛擬主機(jī))。

3.2. 修改php-fpm配置文件

  • 主要是php的優(yōu)化
  • 主配置文件 php-fpm.conf,常用配置如下:
//設(shè)置php-fpm最大進(jìn)程數(shù)
[root@localhost ~]# cp php-fpm.conf{,.bak}
[root@localhost ~]# vim /etc/php-fpm.conf
[global]
...
;動(dòng)態(tài)方式下開(kāi)啟的php-fpm進(jìn)程的最大數(shù)量(默認(rèn)是注釋的)
process.max = 2048
;設(shè)置 fpm 在后臺(tái)運(yùn)行(默認(rèn)是打開(kāi)的)
daemonize = yes
; 設(shè)置進(jìn)程可以打開(kāi)的文件描述符數(shù)量(默認(rèn)是注釋的)
rlimit_files = 65535
; 設(shè)置FPM 的事件處理機(jī)制
events.mechanism = epoll
;  加載pool 配置
include = /etc/php-fpm.d/*.conf

//設(shè)置進(jìn)程池
[root@localhost php.d]# cp /etc/php-fpm.d/www.conf{,.bak}
[root@localhost php.d]# vim /etc/php-fpm.d/www.conf
[www]
...
; 設(shè)置動(dòng)態(tài)dynamic進(jìn)程池/靜態(tài)static(默認(rèn)是打開(kāi)的)
pm = dynamic
; 設(shè)置每個(gè)進(jìn)程可處理的請(qǐng)求數(shù),當(dāng)進(jìn)程達(dá)到這個(gè)請(qǐng)求數(shù)量后會(huì)自動(dòng)釋放在重新生成新的進(jìn)程。避免內(nèi)存泄漏等情況
pm.max_requests = 1500
; 終止請(qǐng)求超時(shí)時(shí)間。一個(gè)請(qǐng)求若處理大于20s ,則會(huì)自動(dòng)kill掉。避免進(jìn)程堆積
request_terminate_timeout = 20
; 限制 FPM 允許解析的腳本擴(kuò)展名. 這里不限制,F(xiàn)PM可以解析任何擴(kuò)展名的文件
security.limit_extensions = ""

#修改php上傳文件的大小
[root@localhost php.d]# vim /etc/php.ini
max_execution_time = 0 #默認(rèn)的該腳本最久執(zhí)行時(shí)間為30秒,就是說(shuō)超過(guò)30秒嗎,該腳本就停止執(zhí)行,0為不限制時(shí)間
post_max_size = 150M #默認(rèn)POST數(shù)據(jù)大小為8M,可以按實(shí)際情況修改
upload_max_filesize = 100M #默認(rèn)上傳文件最大為2M,可以按實(shí)際情況修改。
注:另外要說(shuō)明的是,post_max_size 大于 upload_max_filesize 為佳

[root@localhost php.d]# systemctl start php-fpm
[root@localhost php.d]# systemctl enable php-fpm

3.3. 配置138上的 Nginx+php

動(dòng)態(tài)服務(wù)器編輯nginx連接php
編輯nginx的配置文件:

server {
        listen      80;        #注意將default.conf的端口改掉
        server_name     localhost;
        location ~ \.php$ {
            root           /var/www;  #指定網(wǎng)站目錄
            fastcgi_pass   127.0.0.1:9000;    #開(kāi)啟fastcgi連接php地址
            fastcgi_index  index.php;          #指定默認(rèn)文件
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; #站點(diǎn)根目錄,取決于root配置項(xiàng)
            include        fastcgi_params;  #包含fastcgi使用的常量
                }
        }
[root@localhost var]# mkdir www
[root@localhost var]# cd www/
[root@localhost www]# vim index.php
<?php
 phpinfo();
?>

//重啟nginx
[root@localhost www]# systemctl restart nginx

瀏覽器訪問(wèn)130上的php頁(yè)面,http://192.168.221.138/index.php,確保源站訪問(wèn)正常

4. 配置 Nginx 動(dòng)靜分離

proxy_cache和expires的介紹

通過(guò) expires 指令設(shè)置的緩存,主要是針對(duì)客戶(hù)端瀏覽器的。如果我們能將靜態(tài)資源的緩存設(shè)置在服務(wù)器端,當(dāng)多個(gè)用戶(hù)訪問(wèn)同一個(gè)資源時(shí),緩存命中率及系統(tǒng)的性能將大大提升。
proxy_cache介紹:當(dāng)nginx作為反向代理時(shí),通常只有動(dòng)態(tài)的請(qǐng)求,也就是不同的用戶(hù)訪問(wèn)的同一個(gè)url看到的內(nèi)容是不同的,這個(gè)時(shí)候才會(huì)交由上游服務(wù)器處理,但是有些內(nèi)容可能是一段時(shí)間內(nèi)是不會(huì)變化的,這個(gè)時(shí)候?yàn)榱藴p輕上游服務(wù)器的壓力,那么就讓nginx把上游返回的內(nèi)容緩存一段時(shí)間,比如緩存一天,在一天之內(nèi)即是上游服務(wù)器內(nèi)容發(fā)生了變化也不管,nginx只返回緩存到的內(nèi)容給用戶(hù)。

proxy_cache:實(shí)現(xiàn)服務(wù)器端緩存,主要設(shè)置在反向代理上面

nginx動(dòng)靜分離的配置

#配置nginx反向代理upstream,并實(shí)現(xiàn)服務(wù)器端緩存時(shí)間
#注意:是130上面配置

upstream static {
        server 192.168.221.136:80 weight=1 max_fails=1 fail_timeout=60s;
        }
upstream php {
        server 192.168.221.138:80 weight=1 max_fails=1 fail_timeout=60s;
        }
proxy_cache_path /tmp/proxy_cache levels=1:2 keys_zone=proxy_cache:64m inactive=1d max_size=128m;

        server {
        listen      80;
        server_name     localhost;
        #動(dòng)態(tài)資源加載
        location ~ \.(php|jsp)$ {
            proxy_pass http://php;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                }
        #靜態(tài)資源加載
        location ~ .*\.(html|jpg|png|css|js)$ {
            proxy_pass http://static;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_cache proxy_cache;    #配置設(shè)置的緩存空間名稱(chēng)
            proxy_cache_valid 200 302 304 30d ; #根據(jù)響應(yīng)碼設(shè)置緩存時(shí)間,超過(guò)這個(gè)時(shí)間即使緩存文件中有緩存數(shù)據(jù),nginx也會(huì)回源請(qǐng)求新數(shù)據(jù)。
            proxy_cache_key $host$uri$is_args$args; #對(duì)不用用戶(hù)的請(qǐng)求展示不同的內(nèi)容
                }
        }

#參數(shù)詳解:
proxy_cache_path      緩存文件路徑
levels                設(shè)置緩存文件目錄層次;levels=1:2 表示兩級(jí)目錄
keys_zone             設(shè)置緩存名字和共享內(nèi)存大小【在使用的地方要使用緩存名】
inactive              在指定緩存時(shí)間內(nèi)沒(méi)人訪問(wèn)則被刪除
max_size              最大緩存空間,如果緩存空間滿(mǎn),默認(rèn)覆蓋掉緩存時(shí)間最長(zhǎng)的資源。

瀏覽器訪問(wèn)測(cè)試:

  • 當(dāng)訪問(wèn)靜態(tài)頁(yè)面的時(shí)候location 匹配到 (html|jpg|png|js|css) 通過(guò)轉(zhuǎn)發(fā)到靜態(tài)服務(wù)器,靜態(tài)服務(wù)通過(guò)location的正則匹配來(lái)處理請(qǐng)求。
  • 當(dāng)訪問(wèn)動(dòng)態(tài)頁(yè)面時(shí)location匹配到 .\php 結(jié)尾的文件轉(zhuǎn)發(fā)到后端php服務(wù)處理請(qǐng)求。

靜態(tài)資源訪問(wèn):http://192.168.221.130/test.jpg
動(dòng)態(tài)資源訪問(wèn):http://192.168.221.130/index.php

到此這篇關(guān)于Nginx動(dòng)靜分離的示例代碼的文章就介紹到這了,更多相關(guān)Nginx動(dòng)靜分離內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • nginx 關(guān)閉默認(rèn)站點(diǎn)的方法

    nginx 關(guān)閉默認(rèn)站點(diǎn)的方法

    國(guó)內(nèi)機(jī)房一般都要求網(wǎng)站主關(guān)閉空主機(jī)頭,防止未備案的域名指向過(guò)來(lái)造成麻煩
    2012-09-09
  • Centos下編譯安裝Nginx教程詳解

    Centos下編譯安裝Nginx教程詳解

    這篇文章主要介紹了Centos下編譯安裝Nginx的教程詳解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-12-12
  • Nginx中alias指令的實(shí)現(xiàn)

    Nginx中alias指令的實(shí)現(xiàn)

    lias指令用于指定一個(gè)替換位置,該替換位置會(huì)替換掉location塊中指定的URl,下面就來(lái)介紹一下alias指令,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • nginx常見(jiàn)內(nèi)置變量$uri和$request_uri的使用

    nginx常見(jiàn)內(nèi)置變量$uri和$request_uri的使用

    本文主要介紹了nginx常見(jiàn)內(nèi)置變量$uri和$request_uri的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • 為高負(fù)載網(wǎng)絡(luò)優(yōu)化Nginx和Node.js的方法

    為高負(fù)載網(wǎng)絡(luò)優(yōu)化Nginx和Node.js的方法

    如果不先對(duì)Nginx和Node.js的底層傳輸機(jī)制有所了解,并進(jìn)行針對(duì)性?xún)?yōu)化,可能對(duì)兩者再細(xì)致的調(diào)優(yōu)也會(huì)徒勞無(wú)功。一般情況下,Nginx通過(guò)TCP socket來(lái)連接客戶(hù)端與上游應(yīng)用
    2013-02-02
  • Nginx啟動(dòng)失?。憾丝?0被占用問(wèn)題的解決方案

    Nginx啟動(dòng)失敗:端口80被占用問(wèn)題的解決方案

    在Linux服務(wù)器上部署 Nginx 時(shí),可能會(huì)遇到 Nginx 啟動(dòng)失敗的情況,尤其是錯(cuò)誤提示bind()to 0.0.0.0:80 failed,這種問(wèn)題通常是由于端口80被其他進(jìn)程占用導(dǎo)致的,本文將詳細(xì)分析這一問(wèn)題的原因,并提供多種解決方案,幫助你快速恢復(fù)Nginx的正常運(yùn)行
    2025-02-02
  • 詳解nginx日志定時(shí)備份和刪除

    詳解nginx日志定時(shí)備份和刪除

    本篇文章主要介紹了nginx日志定時(shí)備份和刪除 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Nginx服務(wù)器中的location配置詳解

    Nginx服務(wù)器中的location配置詳解

    這篇文章主要介紹了Nginx服務(wù)器中的location配置詳解,包括location的匹配順序等基本概念,需要的朋友可以參考下
    2015-08-08
  • Nginx出現(xiàn)403?Forbidden的幾種簡(jiǎn)單解決方式

    Nginx出現(xiàn)403?Forbidden的幾種簡(jiǎn)單解決方式

    這篇文章主要介紹了Nginx出現(xiàn)403?Forbidden的幾種解決思路,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Nginx負(fù)載均衡的4種方案配置實(shí)例

    Nginx負(fù)載均衡的4種方案配置實(shí)例

    這篇文章主要介紹了Nginx負(fù)載均衡的4種方案配置實(shí)例,本文講解了輪詢(xún)、最少連接、IP地址哈希、基于權(quán)重的負(fù)載均衡等內(nèi)容,需要的朋友可以參考下
    2015-01-01

最新評(píng)論