JiaFeiX
V2EX  ›  问与答

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

  •  
  •   JiaFeiX · May 23, 2017 via iPhone · 4010 views
    This topic created in 3316 days ago, the information mentioned may be changed or developed.
    16 replies    2017-05-23 17:55:33 +08:00
    msg7086
        1
    msg7086  
       May 23, 2017
    本来就没什么必要吧,纯粹是看个人口味。
    我已经六七年没用过 Apache 了。
    cxbig
        2
    cxbig  
       May 23, 2017
    同楼上,无非是个人习惯罢了。
    nutting
        3
    nutting  
       May 23, 2017 via Android
    上学时候,玩过 php 是配合 apache,后来就不接触了,看到这还心想难道还有别的方式?一想那是 10 年前的事了…
    my101du
        4
    my101du  
       May 23, 2017
    只有在做反向代理,目标地址有子目录的时候,我才怀念起 Apache 默认支持这个。。Nginx 一直搞不定。
    RealLiuSha
        5
    RealLiuSha  
       May 23, 2017
    上次用 apache 还是 2012 年。。。
    ryd994
        6
    ryd994  
       May 23, 2017   ❤️ 1
    @my101du 不会啊……
    nginx 能带路径的啊……
    proxy_pass example.com/path/
    johnlui
        7
    johnlui  
       May 23, 2017
    Nginx 稳定性高于 Apache,但是 PHP-FPM 稳定性实在太差了,突发大流量不上人根本顶不住,会挂掉。

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

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

    @johnlui

    这个是真的吗? 好多站点应该是单纯的 nginx 架构吧?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2543 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 09:55 · PVG 17:55 · LAX 02:55 · JFK 05:55
    ♥ Do have faith in what you're doing.