现在这个时候前 Nginx 后 Apache 的方式部署 PHP 还有必要吗?

2017-05-23 00:51:12 +08:00
 JiaFeiX
3023 次点击
所在节点    问与答
16 条回复
msg7086
2017-05-23 00:52:08 +08:00
本来就没什么必要吧,纯粹是看个人口味。
我已经六七年没用过 Apache 了。
cxbig
2017-05-23 01:09:48 +08:00
同楼上,无非是个人习惯罢了。
nutting
2017-05-23 08:16:58 +08:00
上学时候,玩过 php 是配合 apache,后来就不接触了,看到这还心想难道还有别的方式?一想那是 10 年前的事了…
my101du
2017-05-23 09:02:45 +08:00
只有在做反向代理,目标地址有子目录的时候,我才怀念起 Apache 默认支持这个。。Nginx 一直搞不定。
lgpqdwjh
2017-05-23 09:06:06 +08:00
上次用 apache 还是 2012 年。。。
ryd994
2017-05-23 09:23:23 +08:00
@my101du 不会啊……
nginx 能带路径的啊……
proxy_pass example.com/path/
johnlui
2017-05-23 10:31:22 +08:00
Nginx 稳定性高于 Apache,但是 PHP-FPM 稳定性实在太差了,突发大流量不上人根本顶不住,会挂掉。

Nginx 还能做 tcp 代理,话说我正准备在公司使用这种架构。。。
my101du
2017-05-23 10:51:37 +08:00
@ryd994
我的需求可能比较特殊:
1. A 站点是一个普通的网站, www.A.com/path/ 是一个子目录
2. B 站点是一个 Laravel 搭建的站,www.B.com/path/ 是一组路由定义,下面有 /path/action1 /path/action2
3. 想要用户的浏览器地址栏看起来在一直停留在 www.A.com/path/?queryString, 实际上是在 www.B.com/path?queryString
4. 不使用 rewrite (会让地址产生跳转变化)

我找过不少资料,参数传递不过来。。。
wly19960911
2017-05-23 11:12:44 +08:00
@my101du
使用 a 站点那个目录的时候直接用 proxy_pass 把请求转发到 b 网站服务器不行吗
wly19960911
2017-05-23 11:14:47 +08:00
@wly19960911
使用正则把 /path 后面所有的路径进行 location,然后 proxy_pass 转发过去,这完全可以。没看楼上,楼上说的完全正确
ryd994
2017-05-23 11:40:20 +08:00
shooyaaa
2017-05-23 12:05:17 +08:00
@my101du

location ^~ /test/ {
alias /var/www/test/public/;
rewrite ^/test/(.*)$ /index.php?$1;
include fastcgi_params;
fastcgi_param REQUEST_URI $query_string;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9001;
break;
}
和你一样的问题,昨天搞了一天能用了,你可以试一下
swulling
2017-05-23 12:29:52 +08:00
没有,PHP-FPM 欢迎你
jarlyyn
2017-05-23 12:52:48 +08:00
有,比如你既需要.htaccess 又需要反代的时候。

比如同时跑 Virtualmin 和其他语言的程序。
jasontse
2017-05-23 12:59:06 +08:00
看需求了,我单跑 PHP 的时候是喜欢直接用 FPM 的。
JiaFeiX
2017-05-23 17:55:33 +08:00
> 但是 PHP-FPM 稳定性实在太差了,突发大流量不上人根本顶不住,会挂掉。

@johnlui

这个是真的吗? 好多站点应该是单纯的 nginx 架构吧?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/363093

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX