V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
JiaFeiX
V2EX  ›  问与答

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

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

    Nginx 还能做 tcp 代理,话说我正准备在公司使用这种架构。。。
    my101du
        8
    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
        9
    wly19960911  
       2017-05-23 11:12:44 +08:00 via Android
    @my101du
    使用 a 站点那个目录的时候直接用 proxy_pass 把请求转发到 b 网站服务器不行吗
    wly19960911
        10
    wly19960911  
       2017-05-23 11:14:47 +08:00 via Android
    @wly19960911
    使用正则把 /path 后面所有的路径进行 location,然后 proxy_pass 转发过去,这完全可以。没看楼上,楼上说的完全正确
    ryd994
        11
    ryd994  
       2017-05-23 11:40:20 +08:00
    shooyaaa
        12
    shooyaaa  
       2017-05-23 12:05:17 +08:00   ❤️ 1
    @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
        13
    swulling  
       2017-05-23 12:29:52 +08:00
    没有,PHP-FPM 欢迎你
    jarlyyn
        14
    jarlyyn  
       2017-05-23 12:52:48 +08:00 via Android
    有,比如你既需要.htaccess 又需要反代的时候。

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

    @johnlui

    这个是真的吗? 好多站点应该是单纯的 nginx 架构吧?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5299 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 09:23 · PVG 17:23 · LAX 01:23 · JFK 04:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.