apache 与 php-fpm 几种处理方式
目录
1.SetHandler
2.ProxyPassMatch
3.ProxyPass
1.SetHandler
在apache配置文件只部署一次
需要Apache 2.4.9以上才行
ip:port配置
php-fpm配置
listen = 127.0.0.1:9000
httpd配置
<FilesMatch .php$>
setHandler "proxy:fcgi://127.0.0.1:9000"
UDS配置
php-fpm配置
listen = /var/run/php-fpm/php-fpm.sock
httpd配置
<FilesMatch .php$>
SetHandler:unix:///var/run/php-fpm/php-fpm.sock|fcgi://php-fpm
SetHandler "proxy:unix:/var/run/php-fpm/php-fpm.sock|fcgi://localhost" # Apache 2.4.10设置
2.ProxyPassMatch
需要在每个 “VirtualHost” 里面加入
ip:port配置
<VirtualHost :80>
ProxyPassMatch ^/(..php(/.*)?)$ fcgi://127.0.0.1:9000/path/to/your/documentroot/$1
DirectoryIndex /index.php
ProxyPassMatch
只有满足特定正则模式的内容才会匹配并执行此规则,这里的模式是,
^/(..php(/.)?)$
从网站(虚拟主机 的根目录开始,匹配任何以 .php 结尾,或者在 .php 之后紧跟一个 / 再跟别的内容的路径。
^ (caret) 和 $ (dollar)
标志要匹配的路径的开始和结束
( )
括号里的内容可以用 $1 来表示,以方便后面引用它。
fcgi://127.0.0.1:9000
通过 mod_proxy_fcgi 来转发的代理,使用 fastCGI 协议,转到 PHP-FPM 监听的端口。
改变 IP 地址和/或端口号就可以要转到的不同的 pool。用这个可以实现服务器分流、均衡等。
/path/to/your/documentroot/
非常重要!必须与虚拟主机的路径匹配,且必须是对应 php 文件在操作系统中的绝对路径。否则会找不到文件(PHP Script File)。这也是 URL 地址重写的目的所在:将 URL 地址转换成 fcgi://127.0.0.1:9000 后面紧跟着的 php 文件绝对路径。
可以从原始请求扩展成整个请求路径的变量,这里指代前面外围 ( ) 里面匹配的那个路径(uri)
我本机docker容器 httpd 和 php-fpm配置
我的php-fpm在138.38.38.110 上,配置将有所不同
<VirtualHost :80>
ServerAdmin shenyi@com.cn
DocumentRoot "/usr/local/apache2/htdocs"
ServerName localhost
<Directory "/usr/local/apache2/htdocs">
Options None
Require all granted
ProxyRequests Off
ProxyPassMatch ^/(..php)$ fcgi://138.38.38.110:9000/var/www/htm/$1
关于docker-compose 安装配置,看我docker compose 安装配置nginx 反向代理 httpd php-fpm
3.ProxyPass
跟ProxyPassMatch 类似 ,需要在每个 VirtualHost 中分别设置
<LocationMatch ^(.*.php)$>
ProxyPass fcgi://127.0.0.1:9000/path/to/webroot/
ProxyErrorOverride on
最后感谢 http://cnzhx.net/blog/apache-httpd-mod_proxy_fcgi-php-fpm/#listen
来源:http://www.taoluyuan.com/index.php/archives/37/#http://www.taoluyuan.com/index.php/archives/37/
apache 与 php-fpm 几种处理方式的更多相关文章
- apache+tomcat负载均衡3种实现方式
1.首先安装apache,编译完成后,通过IP:端口就行访问,如果返回“it workers”证明Apache启动成功(注意apache的工程路径要正确) 2.下载JK,下载地址为http://mir ...
- Apache下PHP的几种工作方式
PHP在Apache中一共有三种工作方式:CGI模式.Apache模块DLL.FastCGI模式. 一.CGI模式 PHP 在 Apache 2中的 CGI模式.编辑Apache 配置文件httpd. ...
- 【转】Apache 配置虚拟主机三种方式
Apache 配置虚拟主机三种方式 原文博客http://www.cnblogs.com/hi-bazinga/archive/2012/04/23/2466605.html 一.基于IP 1. 假 ...
- Apache Spark探秘:三种分布式部署方式比较
转自:链接地址: http://dongxicheng.org/framework-on-yarn/apache-spark-comparing-three-deploying-ways/ 目 ...
- [转]Apache HTTP Server 与 Tomcat 的三种连接方式介绍
首先我们先介绍一下为什么要让 Apache 与 Tomcat 之间进行连接.事实上 Tomcat 本身已经提供了 HTTP 服务,该服务默认的端口是 8080,装好 tomcat 后通过 8080 端 ...
- apache基础,apache环境搭建,apache的3种使用方式(IP、端口、域名)
一台服务器上多个网站同时运行,基于域名访问,IP访问,端口访问. http服务使用的端口是80 HTTPS使用的是443 协议名称://机器地址:端口号/路径名/文件名 协议名称—— 所使用的访问协议 ...
- linux下的apache服务自启动的几种方式
1,如果是安装包安装在Linux系统下,那么可以使用 [root@localhost ~]# service httpd restart 从而可以开启或者重启apache服务 与此同时,它的标准方式是 ...
- Hive metastore三种配置方式
http://blog.csdn.net/reesun/article/details/8556078 Hive的meta数据支持以下三种存储方式,其中两种属于本地存储,一种为远端存储.远端存储比较适 ...
- Hive的三种安装方式(内嵌模式,本地模式远程模式)
一.安装模式介绍: Hive官网上介绍了Hive的3种安装方式,分别对应不同的应用场景. 1.内嵌模式(元数据保村在内嵌的derby种,允许一个会话链接,尝试多个会话链接时会报错) ...
- solrCloud的两种部署方式
solrcloud 的部署其实有两种方式可选,那么我们在实践开发中应该怎样选择呢? 第一种:当启动solr服务器时,内嵌的启动一个Zookeeper服务器,然后将这些内嵌的Zookeeper服务器组成 ...
随机推荐
- Delphi中有关窗口绘制
Invalidate方法通知Windows应该重新绘制表单的整个表面.最重要的是Invalidate不会立即强制执行绘制操作. Windows只是存储请求,并且只会响应它当前程序完全执行后,并且只要系 ...
- python str find & index 联系
[1]相同点 (1)功能:检测字符串中是否包含子字符串str (2)语法: [1] str.find(str, beg = 0, end = len(string)) [2] str.index(st ...
- vue-cli 2.92版本 没有dev.server.js
在webpack.dev.conf.js 文件中 //首先 const express = require('express') const app = express() var appData = ...
- bzoj1911 [Apio2010]特别行动队commando
题目链接 斜率优化 #include<cstdio> #include<cstdlib> #include<string> #include<cstring& ...
- [转载]lib和dll文件的区别和联系
出处:https://blog.csdn.net/weiaipan1314/article/details/52252478 什么是lib文件,lib和dll的关系如何 (2008-04-18 19: ...
- C++反射实现(转)
参考了wxWidgets的相关代码,并进行简化,同时借鉴了网上的相关内容,改进之处在于,只需要继承基本类Object,在类的头文件中定义宏,DECLARE_CLASS(类名),在类的实现文件中定义宏, ...
- 【js】关于闭包、let、var的一个考题
题目: html: body中有2个div 遍历,给每个div添加点击事件,输出值. js: var声明: 效果: 点击每个div后都打印2. 用户点击前,for循环就已经执行完了,是2,onclic ...
- 输出JSON
<?php header("Content-type: text/html; charset=utf-8"); $host = '数据库IP'; $dbname = '数据库 ...
- 【BZOJ4031】小Z的房间
Description 你突然有了一个大房子,房子里面有一些房间.事实上,你的房子可以看做是一个包含n*m个格子的格状矩形,每个格子是一个房间或者是一个柱子.在一开始的时候,相邻的格子之间都有墙隔着. ...
- 第十届蓝桥杯2019年C/C++ 大学A组省赛试题
2019年蓝桥杯第十届软件类省赛 C/C++ 大 学 A 组 试题 A: 平方和 本题总分:5 分 [问题描述] 小明对数位中含有 2.0.1.9 的数字很感兴趣,在 1 到 40 中这样的数包括 1 ...