在学习了之前的一些关于Nginx相关的基础配置以及功能,下面我们就开始学习如何搭建LEMP以及Load-BalacningLEMP
L
:LinuxE
:Engine X –> NginxM
:MariaDBP
:PHP-FPM
在做LEMP
之前,我们先要学习一下proxy
模块的使用,方便我们对fastcgi
的理解
注意:在做这次的实验之前,确保你的机器能够同时运行5台以上的虚拟机,否则后面的实验可能会做不了
实验拓扑图
虚拟机配置
|
|
物理机配置
Proxy模块各参数详解
1、proxy_pass URL;
|
|
2、proxy_set_header filed value;
|
|
3、proxy_hide_header field;
|
|
4、proxy_pass_header filed;
|
|
5、proxy_cache_path path [levels=levels] keys_zone=name:size [max_size=size];
|
|
6、proxy_cache zone | off;
|
|
7、proxy_cache_key string;
|
|
8、proxy_cache_valid [code …] time;
|
|
9、proxy_cache_use_stale error | timeout | invalid_header | updating | http_500 | http_502 | http_503 | http_504 | http_403 | http_404 | off …;
|
|
10、proxy_cache_methods GET | HEAD | POST …;
|
|
11、proxy_connect_timeout time;
|
|
12、proxy_send_timeout time;
|
|
实例
|
|
fastcgi各参数详解
1、fastcgi_pass address;
|
|
2、fastcgi_index name;
|
|
3、fastcgi_param parameter value [if_not_empty];
|
|
4、fastcgi_cache_path path [levels=levels] keys_zone=name:size [max_size=size];
|
|
5、fastcgi_cache zone | off;
|
|
6、fastcgi_cache_key string;
|
|
7、fastcgi_cache_min_uses number;
|
|
8、fastcgi_cache_valid [code …] time;
|
|
9、fastcgi_keep_conn on | off;
|
|
配置文件预览
|
|
效果演示
1.访问php页面自动代理至php-fpm处理:
2.访问php自带的测试页:
3.测试fastcgi缓存功能
- 未开启缓存功能 压测index.php:(5000访问,200并发,总耗时374.381ms)
- 开启缓存功能 压测index.php:(5000访问,200并发,总耗时45.795ms)
由此测试可见缓存的重要性
什么是负载均衡
网络负载均衡技术的大致原理是利用一定的分配策略
将网络负载平衡地分摊到网络集群的各个工作单元
上,使得单个重负负载任务能够分担到多个单元上并行处理
,或者使得大量并发访问或者数据流量分担到多个单元上分别处理
,从而减少用户的等待响应时间。
在实际应用中,负载均衡会根据网络的不同层次(一般按照OSI的七层参考模型)进行划分。现代的负载均衡技术主要实现和作用域网络的第四层(传输层)或第七层(应用层),完全独立于网络基础硬件设备,成为单独的技术设备。
Nginx
服务器实现的负载均衡一般认为是七层负载均衡
。
Nginx服务器负载均衡配置
理解了“负载均衡”的概念,就可以利用Nginx服务器实现负载均衡的配置了。Nginx服务器实现了静态的基于优先级
的加权轮询(weighted round robin)
算法,主要使用的配置是proxy_pass
指令和upstream
指令,这些内容实际上很容易理解,关键点在于Nginx服务器的配置灵活多样,如何在配置均衡负载的同时合理的融合其他功能,形成一套可以满足实际需求的配置方案。
upstream模块详解
1、upstream name { … }
|
|
2、server address [parameters];
|
|
address的表示格式
|
|
parameters的可用参数:
|
|
3、least_conn;
|
|
4、ip_hash;
|
|
5、hash key [consistent];
|
|
6、keepalive connections;
|
|
upstream配置实例
配置文件预览
|
|
效果演示
配置文件详解
Engine X (Nginx) 配置
1、安装Nginx
|
|
如果yum仓库中没有 nginx
,需要到官方站点下载,并使用如下命令安装;或者编译安装,在之前的一章已经讲过了。
|
|
2、修改主配置文件,添加自定义日志格式
|
|
3、添加虚拟主机配置文件
|
|
4、创建配置文件中的目录以及主站html
|
|
php-fpm配置
1、安装php-fpm以及其他所需组件
|
|
2、编辑配置文件
|
|
3、创建用户以及所需目录以及主站index.php
|
|
4、启动php-fpm
|
|
MariaDB配置
1、安装maridb
|
|
2、编辑配置文件
|
|
3、启动mariadb
|
|
4、授权远程用户登陆数据库
|
|
配置phpMyAdmin
1、拷贝rpm包
|
|
2、解压缩并修改配置文件
php主机上进行的操作:
|
|
nginx主机上进行的操作:
|
|
3、开启nginx服务、打开网页进行测试即可,LEMP搭建完成/font>
|
|
配置文件预览
|
|
实例演示
目标:
|
|
实验拓扑结构:
|
|
Engine X (Nginx)
安装与配置
- 安装nginx
|
|
- 修改配置文件
|
|
- 创建所需目录以及主站文件
|
|
- 启动nginx服务,打开浏览器验证
|
|
AP –> apache + php
安装与配置
- 安装
|
|
- 创建index.html和index.php
|
|
拷贝WordPress以及phpMyAdmin
- 拷贝wordpress以及pma到http服务器的DocumentRoot目录下
|
|
- 解压缩wordpress以及pma
|
|
- 启动http服务并测试
|
|
MariaDB
安装与配置
- 安装
|
|
- 配置
|
|
- 创建WordPress所需的数据库及用户,并授权远程连接权限
|
|
- 在ap服务器上修改pma以及wordpress的数据库配置
|
|
拷贝ap上pma和wordpress到nginx的网站root目录下
- ap操作:
|
|
- nginx操作:
|
|
测试
打开网页输入网址即可测试
增加https功能
自建CA并自签nginx证书
- 自建CA
|
|
- 生成ssl签署请求,并让CA签署
|
|
编辑nginx配置文件,开启ssl功能
|
|
拷贝CA公钥到MBP,导入浏览器中,验证
|
|
到此Nginx的相关知识与实践实验就结束啦
本文出自Maxie’s Notes博客,转载请务必保留此出处。