本篇博客内容主要介绍nginx 各模块功能和实验步骤
ngx_http_fastcgi_module模块
转发请求到FastCGI服务器,不支持php模块方式
- fastcgi_pass address;
address为后端的fastcgi server的地址
- fastcgi_index name;
f
astcgi默认的主页资源
示例:fastcgi_index index.php;
fastcgi_param parameter value [if_not_empty];
设置传递给 FastCGI服务器的参数值,可以是文本,变 量或组合fastcgi_cache_path
定义fastcgi的缓存;
格式:
path 缓存位置为磁盘上的文件系统
max_size=size 磁盘path路径中用于缓存数据的缓存空间上限
levels=levels:缓存目录的层级数量,以及每一级的目录数量
示例:leves=1:2:2
keys_zone=name:size k/v映射的内存空间的名称及大小
inactive=time 非活动时长
- fastcgi_cache zone | off;
调用指定的缓存空间来缓存数据
可用位置:http, server, location
- fastcgi_cache_key string;
定义用作缓存项的key的字符串
示例:fastcgi_cache_key $request_rui
- fastcgi_cache_methods GET | HEAD | POST …;
为哪些请求方法使用缓存
- fastcgi_cache_min_uses number;
缓存空间中的缓存项在inactive定义的非活动时间内至少要被访问到 此处所指定的次数方可被认作活动项
- fastcgi_keep_conn on | off;
收到后端服务器响应后,fastcgi服务器是否关闭连接,建议启用长连接
- fastcgi_cache_valid [code …] time;
不同的响应码各自的缓存时长
实验
前提要把selinux 关闭 ,iptables清空,时间同步
第一步;
把192.168.243.6 虚拟机作为fastcgi服务器
把192.168.243.7虚拟机作为nginx服务器
当作为fastcgi服务器时,需要安装 php-fpm
php-fpm PHP FastCGI进程管理器
(本机centos6.9挂载的镜像包中没有php-fpm包,需要网络epel源)
1、打开php-fpm监听端口及添加允许监听的服务器ip
[root@centos6 ~]#vim /etc/php-fpm.d/www.conf
12 listen = 9000 监听端口
24 listen.allowed_clients = 127.0.0.1,192.168.243.7
2、在/app/php新建php文件
[root@centos6 php]#ls
a.php index.php
第二步:
把192.168.243.7虚拟机作为nginx 服务器
验证:
在浏览器输入:http://www.a.com/index.php
通过/status和/ping来获取fpm server状态信息
首先在fastcgi服务器
vim /etc/php-fpm.d/www.conf 中打开ping 和status 端口
133 ping.path = /ping
121 pm.status_path = /status
然后配置nginx 服务器
验证:
http://192.168.243.7/ping 显示界面是pong
http://192.168.243.7/status 显示状态
定义fastcgi(动态数据)的缓存;
[root@centos7 ~]#vim /etc/nginx/nginx.conf
[root@centos7 ~]#vim /etc/nginx/conf.d/vhosts.conf
重新检测加载,会自动生成缓存文件夹
nginx -t
nginx -s reload
测试:缓存加速效果
ab -c 100 -n 2000 http://192.168.243.7/index.php
基于nginx+ php-fpm + mariadb 搭建wordpress
实验简易拓扑图
实验配置
第一步
安装mariadb
[root@R1 ~]#yum -y install mariadb-server
安装完成后启动本服务,检查3306端口是否打开
创建数据库,并添加用户及使用权限
MariaDB [(none)]> create database wpdb;
MariaDB [(none)]> grant all on wpdb.* to wpuser@'192.168.243.6' identified by 'CENTOS';
第二步;
fastcgi服务器
安装php-mysql 和php-fpm软件包
安装完后并重新启动php-fpm服务
建立一个连接测试数据库是否成功的php文件
[root@centos6 ~]#vim /app/php/index.php
安装wordpress软件包
[root@centos6 php]#tar xvf wordpress-4.8.1-zh_CN.tar.gz
[root@centos6 php]#mv wordpress blog
[root@centos6 blog]#mv wp-config-sample.php wp-config.php
[root@centos6 blog]#vim wp-config.php
23 define('DB_NAME', 'wpdb');
25 /** MySQL数据库用户名 */
26 define('DB_USER', 'wpuser');
28 /** MySQL数据库密码 */
29 define('DB_PASSWORD', 'CENTOS');
31 /** MySQL主机 */
32 define('DB_HOST', '192.168.243.8');
测试:
http://192.168.243.7/blog/index.php
ngx_http_upstream_module模块
**用于将多个服务器定义成服务器组,而由proxy_pass, fastcgi_pass等指令进行引用
Context: http**
在nginx 服务器
vim /etc/nginx/nginx.conf
vim /etc/nginx/conf.d/vhosts.conf
192.168.243.6和192.168.243.8两台机器确保80端口打开,
验证:
for i in {1..10};do curl http://www.a.com ;done; 实现调度成功
192.168.243.6
192.168.243.6
192.168.243.6
192.168.243.8
192.168.243.6
192.168.243.6
192.168.243.8
192.168.243.6
192.168.243.6
192.168.243.8