Nginx处理php页面 用fpm-server 基于fastcgi模块实现
Ngx_http_proxy_module 只能反代后端http server的主机
Ngx_fastcgi_proxy_module 反代后端服务器为fastcgi的主机
Lnmp: nginx+php(fpm-server)+mysql
实验:
需要2台服务器完成 : nginx+fpm-server
Rs上 = fpm
Yum install php-fpm php-mysql php-mbstring php-mcrypt mariadb-server -y
Cd /etc/php-fpm.d
Vim www.conf
Listen =0.0.0.0:9000 监听
Listen.allowed_clients= 允许客户访问 注销后默认所有
Pm.status_path = /status 启动状态检查
Ping.path = /ping ping检查
Php_value[session.save_path] = /vat/lib/php/session 回话保持目录属主属组要是apache
Mkdir -p /var/lib/php/session
Chown apache:apache /var/lib/php/session
Systemctl start php-fpm.service
查看9000端口启动
在nginx 上
location ~*\.php$ {
fastcgi_pass 192.168.10.2:9000; 调用
fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name; 传递参数
include fastcgi_params;
fastcgi_index index.php;
}
location ~*^/(status|ping)$ {
include fastcgi_params;
fastcgi_pass 192.168.10.11:9000
fastcgi_param SCRIPT_FILENAM $fastcgi_script_name;
}
在nginx 下有一个fastcgi_params 的文件 里面设定了把那些参数传给后端的服务器
在rs上
Vi index.php
<?php
Phpinfo()
?>
访问测试: 192.168.220.130/index.php
添加status | ping 健康检查
location ~*^/(status|ping)$ {
fastcgi_pass 192.168.10.2:9000;
fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
include fastcgi_params;
}
连接mysql 测试
在rs上的mysql配置文件中把域名解析的两个选项关闭
Vim /etc/my.cf
Skip_name_resolve=on
Innodb_file_per_table=on
启动:sysrmctl start mariadb.service
Mysql_secure_installation 命令可以设置mysql密码
这里部署一个phpmyadmin 应用来实验、
下载包:
scp phpMyAdmin-4.0.10.20-all-languages.tar.gz 192.168.10.2:/home/
Tar -zxvf phpMyAdmin-4.0.10.20-all-languages.tar.gz -C /var/www/html/
给phpMyAdmin-4.0.10.20 目录创建个软连接
Ln -sv phpMyAdmin-4.0.10.20 pma
因为nginx没有静态图片所以这里静态图片没有显示
为了可以显示在nginx上也解压此包
# tar -zxvf phpMyAdmin-4.0.10.20-all-languages.tar.gz -C /usr/share/nginx/html/
ln -sv phpMyAdmin-4.0.10.20-all-languages pma
在访问就可以了
3 做压力测试 ab
ab -c 100 -n 5000 http://192.168.220.130/pma/index.php
添加缓存功能:
Pastcgi_cache_path 定义缓存
Vim /etc/nginx/nginx.conf
fastcgi_cache_path /data/nginx/fastcgi levels=1:1:2 keys_zone=fcache:20m max_szie=2g;
调用
fastcgi_cache fcache;
fastcgi_cache_key $request_uri;
fastcgi_cache_valid any 1m;