小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Nginx+lamp構(gòu)建動(dòng)靜分離項(xiàng)目

 夜貓速讀 2022-05-22 發(fā)布于湖北

一、nginx代理的概述;

二、nginx之正向代理;

三、nginx之反向代理;

四、nginx之負(fù)載均衡;

五、案例:結(jié)合nginx反向代理構(gòu)建nginx+lamp實(shí)現(xiàn)動(dòng)靜頁(yè)面分離以及php服務(wù)器的負(fù)載均衡

一、nginx代理的概述;

概述:nginx是一款自由的、開源的、高性能的HTTP服務(wù)器和反向代理服務(wù)器;同時(shí)也是一個(gè)IMAP、POP3、SMTP代理服務(wù)器;nginx可以作為一個(gè)內(nèi)部網(wǎng)絡(luò)代理上網(wǎng)的代理服務(wù)器,另外nginx可以作為反向代理進(jìn)行負(fù)載均衡的實(shí)現(xiàn)。

二、nginx之正向代理;

解析:在如今的網(wǎng)絡(luò)環(huán)境下,我們?nèi)绻捎诩夹g(shù)需要要去訪問國(guó)外的某些網(wǎng)站,此時(shí)你會(huì)發(fā)現(xiàn)位于國(guó)外的某網(wǎng)站我們通過瀏覽器是沒有辦法訪問的,此時(shí)大家可能都會(huì)用一個(gè)操作FQ進(jìn)行訪問,F(xiàn)Q的方式主要是找到一個(gè)可以訪問國(guó)外網(wǎng)站的代理服務(wù)器,我們將請(qǐng)求發(fā)送給代理服務(wù)器,代理服務(wù)器去訪問國(guó)外的網(wǎng)站,然后將訪問到的數(shù)據(jù)傳遞給我們!上述這樣的代理模式稱為正向代理,正向代理最大的特點(diǎn)是客戶端非常明確要訪問的服務(wù)器地址;服務(wù)器只清楚請(qǐng)求來自哪個(gè)代理服務(wù)器,而不清楚來自哪個(gè)具體的客戶端;正向代理模式屏蔽或者隱藏了真實(shí)客戶端信息。

三、nginx之反向代理;

第一層:client,客戶端層,發(fā)出http請(qǐng)求的單位;

第二層:反向代理層,agent層,負(fù)責(zé)將client客戶端的請(qǐng)求,代理轉(zhuǎn)發(fā)到第三層(real server)真實(shí)的服務(wù)器的節(jié)點(diǎn),并且保證real server節(jié)點(diǎn)不暴露在client前;

第三層:real server,服務(wù)器層,真實(shí)負(fù)責(zé)處理cleint客戶端的請(qǐng)求,通常在此為多臺(tái)服務(wù)器構(gòu)成,形成負(fù)載均衡之效果;

四、nginx之負(fù)載均衡;

概述:nginx扮演了反向代理服務(wù)器的角色,它是以依據(jù)什么樣的規(guī)則進(jìn)行請(qǐng)求分發(fā)的呢?不用的項(xiàng)目應(yīng)用場(chǎng)景,分發(fā)的規(guī)則是否可以控制呢?

實(shí)現(xiàn)方式:

硬件負(fù)載均衡:也稱為硬負(fù)載,如F5負(fù)載均衡,相對(duì)造價(jià)昂貴成本較高,但是數(shù)據(jù)的穩(wěn)定性安全性等等有非常好的保障,如中國(guó)移動(dòng)中國(guó)聯(lián)通這樣的公司才會(huì)選擇硬負(fù)載進(jìn)行操作;

軟件負(fù)載均衡:更多的公司考慮到成本原因,會(huì)選擇使用軟件負(fù)載均衡,軟件負(fù)載均衡是利用現(xiàn)有的技術(shù)結(jié)合主機(jī)硬件實(shí)現(xiàn)的一種消息隊(duì)列分發(fā)機(jī)制;

nginx的負(fù)載均衡算法:

1.weight輪詢(默認(rèn)):接收到的請(qǐng)求按照順序逐一分配到不同的后端服務(wù)器。這種方式下,可以給不同的后端服務(wù)器設(shè)置一個(gè)權(quán)重值(weight),用于調(diào)整不同的服務(wù)器上請(qǐng)求的分配率;權(quán)重?cái)?shù)據(jù)越大,被分配到請(qǐng)求的幾率越大;

2.ip_hash:每個(gè)請(qǐng)求按照發(fā)起客戶端的ip的hash結(jié)果進(jìn)行匹配,這樣的算法下一個(gè)固定ip地址的客戶端總會(huì)訪問到同一個(gè)后端服務(wù)器,這也在一定程度上解決了集群部署環(huán)境下session共享的問題;

3.fair:智能調(diào)整調(diào)度算法,動(dòng)態(tài)的根據(jù)后端服務(wù)器的請(qǐng)求處理到響應(yīng)的時(shí)間進(jìn)行均衡分配,響應(yīng)時(shí)間短處理效率高的服務(wù)器分配到請(qǐng)求的概率高,響應(yīng)時(shí)間長(zhǎng)處理效率低的服務(wù)器分配到的請(qǐng)求少;結(jié)合了前兩者的優(yōu)點(diǎn)的一種調(diào)度算法。但是需要注意的是nginx默認(rèn)不支持fair算法,如果要使用這種調(diào)度算法,請(qǐng)安裝upstream_fair模塊;

4.url_hash:按照訪問的url的hash結(jié)果分配請(qǐng)求,每個(gè)請(qǐng)求的url會(huì)指向后端固定的某個(gè)服務(wù)器,可以在nginx作為靜態(tài)服務(wù)器的情況下提高緩存效率。同樣要注意nginx默認(rèn)不支持這種調(diào)度算法,要使用的話需要安裝nginx的hash軟件包;

五、案例:結(jié)合nginx反向代理構(gòu)建nginx+lamp實(shí)現(xiàn)動(dòng)靜頁(yè)面分離以及php服務(wù)器的負(fù)載均衡

案例拓?fù)洌?/strong>

案例環(huán)境:

系統(tǒng)類型

IP地址

主機(jī)名

內(nèi)存

所需軟件

Centos 7.4 1708 64bit

192.168.100.101

www.linuxfan.cn

1G

nginx-1.12.2.tar.gz

Centos 6.5 64bit

192.168.100.150

real1.linuxfan.cn

1G

httpd-2.2.17.tar.gz、

cmake-2.8.6.tar.gz、

mysql-5.5.22.tar.gz、

libmcrypt-2.5.8.tar.gz、

mcrypt-2.6.8.tar.gz、

mhash-0.9.9.9.tar.gz、

php-5.3.28.tar.gz、

ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz

Centos 6.5 64bit

192.168.100.151

real2.linuxfan.cn

1G

httpd-2.2.17.tar.gz、

cmake-2.8.6.tar.gz、

mysql-5.5.22.tar.gz、

libmcrypt-2.5.8.tar.gz、

mcrypt-2.6.8.tar.gz、

mhash-0.9.9.9.tar.gz、

php-5.3.28.tar.gz、

ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz

案例步驟:

?部署real1.linuxfan.cn節(jié)點(diǎn)的lamp服務(wù);

?部署real2.linuxfan.cn節(jié)點(diǎn)的lamp服務(wù);

?安裝www.linuxfan.cn節(jié)點(diǎn)的nginx服務(wù);

?配置nginx節(jié)點(diǎn)的反向代理服務(wù);

?客戶端訪問測(cè)試代理集群;

?查看日志分析訪問情況;

?部署real1.linuxfan.cn節(jié)點(diǎn)的lamp服務(wù);

[root@real1 ~]# ls

lamp_install_publis-app-2015-07-16.tar.xz

[root@real1 ~]# tar Jxvf lamp_install_publis-app-2015-07-16.tar.xz

[root@real1 ~]# cd bin/

[root@real1 bin]#./apache_install.sh &&./mysql_install.sh &&./mysql_config.sh &&./php_install.sh &&./php_config.sh &&./lamp_config.sh

[root@real1 bin]# cd

[root@real1 ~]# netstat -utpln |grep 80

tcp        0      0 :::80                       :::*                        LISTEN      50971/httpd        

[root@real1 ~]# netstat -utpln |grep 3306

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      6693/mysqld

[root@real1 ~]# rm -rf /usr/local/httpd/htdocs/index.html

[root@real1 ~]# vi /usr/local/httpd/htdocs/index.php

session_start();

$_SESSION['time'] =date("Y:m:d:H:s",time());

echo "本次訪問時(shí)間"."".$_SESSION['time'].""."
";

echo "訪問的服務(wù)器地址是"."".$_SERVER['SERVER_ADDR'].""."
";

echo "訪問的服務(wù)器域名是"."".$_SERVER['SERVER_NAME'].""."
";

echo "SESSIONNAME是"."".session_name().""."
";

echo "SESSIONID是"."".session_id().""."
";

?>

客戶端訪問測(cè)試:

?部署real2.linuxfan.cn節(jié)點(diǎn)的lamp服務(wù);

[root@real2 ~]# ls

lamp_install_publis-app-2015-07-16.tar.xz

[root@real2 ~]# tar Jxvf lamp_install_publis-app-2015-07-16.tar.xz

[root@real2 ~]# cd bin/

[root@real2 bin]#./apache_install.sh &&./mysql_install.sh &&./mysql_config.sh &&./php_install.sh &&./php_config.sh &&./lamp_config.sh

[root@real2 bin]# cd

[root@real2 ~]# netstat -utpln |grep 80

tcp        0      0 :::80                       :::*                        LISTEN      50971/httpd        

[root@real2 ~]# netstat -utpln |grep 3306

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      6693/mysqld

[root@real2 ~]# rm -rf /usr/local/httpd/htdocs/index.html

[root@real2 ~]# vi /usr/local/httpd/htdocs/index.php

session_start();

$_SESSION['time'] =date("Y:m:d:H:s",time());

echo "本次訪問時(shí)間"."".$_SESSION['time'].""."
";

echo "訪問的服務(wù)器地址是"."".$_SERVER['SERVER_ADDR'].""."
";

echo "訪問的服務(wù)器域名是"."".$_SERVER['SERVER_NAME'].""."
";

echo "SESSIONNAME是"."".session_name().""."
";

echo "SESSIONID是"."".session_id().""."
";

?>

客戶端訪問測(cè)試:

?安裝www.linuxfan.cn節(jié)點(diǎn)的nginx服務(wù);

[root@www ~]# hostnamectl set-hostname www.linuxfan.cn

[root@www ~]# hostname

www.linuxfan.cn

[root@www ~]# yum -y install pcre-devel zlib-devel

[root@www ~]# useradd -M -s /sbin/nologin nginx

[root@www ~]# tar zxvf nginx-1.12.2.tar.gz -C /usr/src/

[root@www ~]# cd /usr/src/nginx-1.12.2/

[root@www nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

[root@www nginx-1.12.2]# make && make install

[root@www nginx-1.12.2]# cd

[root@www ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

[root@www ~]# vi  /usr/lib/systemd/system/nginx.service

[Unit]

Description=nginxapi

After=network.target

[Service]

Type=forking

PIDFile=/usr/local/nginx/logs/nginx.pid

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=kill -s HUP $(cat /usr/local/nginx/logs/nginx.pid)

ExecStop=kill -s QUIT $(cat /usr/local/nginx/logs/nginx.pid)

PrivateTmp=Flase

[Install]

WantedBy=multi-user.target

[root@www ~]# systemctl start nginx

[root@www ~]# systemctl enable nginx

[root@www ~]# netstat -utpln |grep nginx

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3538/nginx: master

客戶端訪問測(cè)試:

?配置nginx節(jié)點(diǎn)的反向代理服務(wù);

[root@www ~]# vi /usr/local/nginx/conf/nginx.conf

     34 upstream lamp_server {                                   ##在http區(qū)域內(nèi),server區(qū)域上

     35         server 192.168.100.150:80 weight=1;

     36         server 192.168.100.151:80 weight=1;

     37      }

     47         location / {

     48             root   html;

     49             index  index.html index.htm;

     50         }

     51         location ~ \.(asp|aspx|php|jsp|do)$ {                     ##在server區(qū)域內(nèi)添加

     52             proxy_pass      http://lamp_server;

     53         }

[root@www ~]# systemctl stop nginx

[root@www ~]# systemctl start nginx

?客戶端訪問測(cè)試代理集群;

客戶端訪問測(cè)試html站點(diǎn):

客戶端訪問測(cè)試php站點(diǎn):

?查看日志分析訪問情況;

[root@www ~]# tail -3 /usr/local/nginx/logs/access.log

192.168.100.1 - - [16/Jul/2018:17:01:34 +0800] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0"

192.168.100.1 - - [16/Jul/2018:17:02:02 +0800] "GET /index.php HTTP/1.1" 200 797 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0"

192.168.100.1 - - [16/Jul/2018:17:02:11 +0800] "GET /index.php HTTP/1.1" 200 797 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0"

[root@real1 ~]# tail -3 /usr/local/httpd/logs/access_log

192.168.100.102 - - [16/Jul/2018:17:07:55 +0800] "GET /index.php HTTP/1.0" 200 797

192.168.100.102 - - [16/Jul/2018:17:07:56 +0800] "GET /index.php HTTP/1.0" 200 797

192.168.100.102 - - [16/Jul/2018:17:09:03 +0800] "GET /index.php HTTP/1.0" 200 797

[root@real2 ~]# tail -3 /usr/local/httpd/logs/access_log

192.168.100.102 - - [16/Jul/2018:17:07:56 +0800] "GET /index.php HTTP/1.0" 200 797

192.168.100.102 - - [16/Jul/2018:17:07:56 +0800] "GET /index.php HTTP/1.0" 200 797

192.168.100.102 - - [16/Jul/2018:17:09:12 +0800] "GET /index.php HTTP/1.0" 200 797

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多