集:合在一塊兒 放在一塊兒php
羣:一堆 不少css
服務器架構集羣:多臺服務器組成的響應大併發,高數據量的架構體系。html
分佈式服務器架構java
特色:mysql
(1)成本高linux
(2)可以下降單臺服務器的壓力,使用流量平均分配到多臺服務器nginx
(3)使網站服務架構更加安全穩定web
服務器概念: 提供某種或多種服務(功能)的機器(計算機)redis
(1)硬件 性能比較好的電腦主機sql
(2)軟件 實現各類服務支持的協議的軟件
提供http https協議的服務器。網站網頁訪問的功能
Apache 老牌的服務器軟件,功能多而且穩定 ,支持多種配置,lamp
Nginx 安裝簡單小巧,併發量高,web服務器,代理服務器,郵箱服務器
lls 微軟公司,APS腳本使用,能夠經過fast-cgi(網絡接口服務)的方式使用PHP
Lighttpd 德國開發的軟件,小巧,提供web服務支持
關係型數據庫(RDBMS):
Mysql mysqlab => sun(java) => Oracle
Mariadb mysql的一個分支
Postgresql 加州伯克利大學,學院派
Oracle 大型商業數據庫
Sqlserver 微軟數據庫
DB2 IBM
Sqllite3 手機端(iOS和安卓)使用
非關係型數據庫
Memcached
Redis
Mongodb
負載均衡服務器,分發請求到不一樣的服務器。使流量平均分配。
服務器死機,稱爲宕(dang)機
硬件級別 性能好,價格高
軟件級別 性價比高
Lvs linux下分發軟件
Nginx upstream功能分發
資源服務器存儲靜態資源,css,js,圖片,視頻..。通常此服務器會有硬板(ssd)讀寫快速,帶寬更大。
反向代理服務器具備代理請求到對應的服務器的功能,也具備緩存的功能
代理服務器:
好比a須要訪問c,可是a不能直接訪問c。
(1)b能夠訪問c,a能夠訪問b
(2)a告訴b幫忙訪問一下c,把c的數據返回給a
Spuid :
Varnish :
Nginx :
高可用服務器,用來監控負載均衡服務器,若是一旦負載均衡宕機,會接替負載均衡服務器的工做,繼續進行網絡分發的工做。能夠認爲是負載均衡的備用服務器
Hearbit 心臟敲擊
Keeplive 保持
Memcached
redis
需求:
網站服務器在北京
用戶1:天津 --> 北京節點 用戶訪問CDN 服務器
用戶2:杭州 --> 上海節點
Nginx (engine x) 是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務。Nginx是由伊戈爾·賽索耶夫爲俄羅斯訪問量第二的Rambler.ru站點(俄文:Рамблер)開發的,第一個公開版本0.1.0發佈於2004年10月4日。
其將源代碼以類BSD許可證的形式發佈,因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。2011年6月1日,nginx 1.0.4發佈。
Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,在BSD-like 協議下發行。其特色是佔有內存少,併發能力強,事實上nginx的併發能力確實在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。
(1)熱部署:Nginx在修改配置文件以後,不須要重啓,重載操做
(2)能夠高併發鏈接:相同配置的服務器,nginx比apache能接受的鏈接多得多
(3)低的內存消耗:相同的服務器,nginx比apache低的消耗
(4)處理響應請求很快:nginx處理靜態文件的時候,響應速度很快
(5)具備很高的可靠性
1)nginx和apache的軟件底層架構不同。
(1)Nginx的併發要比Apache好不少。
(2)Nginx屬於輕量級服務器軟件,Apache屬於重量級的軟件;
(3)Nginx在處理靜態文件的效率要比Apache好不少,Apache在處理動態頁面效果要 比Nginx高
(4)Apache在安全性要比Nginx要好。
所以有一種不經常使用的組合:lnamp。LNMPA
2)運行模式不一樣
(1)Apache運行PHP是經過加載PHP5模塊運行。因爲是Apache去加載PHP5模塊, 因此每次修改了php.ini配置文件須要重啓Apache。
(2)Nginx運行PHP是經過網絡鏈接php-fpm(fastCGI)方式運行.php-fpm是一個獨立的 軟件(默認端口:9000)。所以在Nginx下修改了php.ini配置文件須要重啓php-fpm
在以前的LAMP基礎上安裝,節省安裝Mysql時間
因爲
安裝Nginx+php和apache+php的使用方式不一樣,因此從新安裝php
(1)軟件包和腳本上傳到服務器
使用工具:FileZilla(https://filezilla-project.org/)
(2)查看並執行install_nginx.sh腳本
賦予腳本權限,並執行安裝腳本: chmod u+x install_*
執行腳本:
配置文件路徑
查看主配置文件
查看文件有時可能不方便,可使用sftp工具鏈接文本編輯器進行設置查看
#user nobody;
worker_processes 1; # 設置工做進程數量
events { worker_connections 1024; # 單個進程的鏈接數(併發量)
} http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; # 負載均衡服務器配置
upstream nginx { # ip_hash hash一致性讓同一個用戶訪問同一臺服務器(解決session丟失問題)
ip_hash; # 192.168.174.130 分發到的服務器
# weight 權重
# max_fails 分發最大失敗次數
# fail_timeout 失敗超時時間
server 192.168.174.130:8080 weight=1 max_fails=3 fail_timeout=20s; server 192.168.174.131:8081 weight=1 max_fails=3 fail_timeout=20s; } # 配置解壓縮
gzip on; # http的協議版本
gzip_http_version = 1.0; # 若是是IE就關閉壓縮
gzip_disable 'MSIE [1-6].'; # 須要壓縮的文件格式(不建議壓圖片能夠壓縮css,js)
gzip_types image/jpeg; # 推薦6 壓縮級別(級別越高,壓的越小,越浪費CPU計算資源)
#gzip_comp_level [1-9]
# 複製一個server端,建立一個新的虛擬機
server { # 默認端口
listen 80; # 域名解析
server_name www.xfsec.com; # 網站根目錄
root /home/xing/xing/project # 緩存圖片文件
location ~ \.(jpeg|jpj|png)${ # 緩存時間爲1day
expires 1d; } # 默認訪問頁
location / { # 網站根目錄
# root /home/xing/xing/project
# 分發代理
proxy_pass http://nginx; index index.html index.htm } error_page 500 502 503 504 /50x.html; # 配置錯誤頁面
location = /50x.html { root html; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000配置PHP服務
location ~ \.php$ { # 使用最上層的root變量
# root html;
fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # 若是Apache和nginx的網站目錄是一個,Apache須要使用分佈式配置文件,開啓此項。
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
# #location ~ /\.ht {
# deny all;
#}
} server { listen 8080; server_name localhost; location / { proxy_pass http://192.168.1.60; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
(1)啓動Nginx
(2)解析域名,創建網站目錄並訪問:C:\Windows\System32\drivers\etc(hosts文件)
①查看修改腳本
執行結果查看軟件目錄
②複製PHP相關配置文件
③啓動php-fpm
①配置php服務的路徑
②測試配置文件並重載
③測試phpinfo文件
Nginx經過配置,能夠告知瀏覽器,返回數據的有效時間,瀏覽器就能夠根據數據的有效時間,肯定是否應該到服務器請求,若是數據沒有超過有效期,就使用瀏覽器緩存的數據。
緩存功能開啓,是爲了用戶可以快速獲取使用到數據,能夠減小服務器請求,下降貸款壓力。
①配置緩存選項
②上傳圖片,並測試訪問
③重載配置文件
壓縮資源,經過網絡發送的大小就更加節省資源了,帶寬佔用變小,啓用壓縮機制,爲了可以快速訪問到資源。
Web服務器進行壓縮,瀏覽器須要進行解壓操做。
目前市場大部分瀏覽器是支持gzip壓縮的。
IE6及之前不支持
配置文件參數保存以後,上傳配置文件
此架構最少須要三臺服務器
經過虛擬機克隆的方式,快速擁有多態虛擬機。
負載均衡服務器nginx,
192.168.174.126
Web1
192.168.174.130
Web2
192.168.174.131
克隆虛擬機操做步驟:
克隆虛注意擬機必須處於關機狀態
①配置負載均衡服務器
分發段配置
訪問域名找虛擬主機,經過虛擬主機,代理到upstream,upstream分發到各web服務器
Windows域名解析
②啓動各服務器
負載均衡服務器只需啓動nginx,不在進行PHP解析
Web服務器啓動nginx和php-fpm服務
Web1服務器
Web2服務器
③查看分發效果
爲了可以看到分發效果,在web1和web2服務器頁面寫入不一樣的測試標識
Web1
[root@localhost 桌面]# vim/usr/local/nginx/html/php61/index.html
<meta charset=」utf8」>
Web2
<h1>時間過得好快呀,又餓了</h1>
Web2
[root@localhost 桌面]# vim/usr/local/nginx/html/php61/index.html
<meta charset=」utf8」>
Web2
<h1>時間過得好快呀,又餓了</h1>
不一樣的服務器須要經過session判斷用戶的狀態。
默認session存儲到服務器的硬盤文件中,不可以共享。
session丟失會形成如下後果:
解決方案: