V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
litt7e
V2EX  ›  PHP

windows 下运行 php 的 web server 方案,怎么搭配性能比较优

  •  2
     
  •   litt7e · 2015-04-13 22:47:47 +08:00 · 4736 次点击
    这是一个创建于 3515 天前的主题,其中的信息可能已经有所发展或是发生改变。

    受限只能在windows用php,nginx就不考虑了,太弱;swoole也没win版本

    我的设想是iis7.5,op缓存有wincache,好在redis/memcache都有win版可用

    另外一个是apache+mod_fpm/mod_fastcgi,win下按理应该是fcgi方式快一些吧

    顺便问一下,如果是纯html,用哪个web server最佳?如果以上性能不够,可能会生成纯html的方式,按理应该是iis7.5吧

    30 条回复    2015-04-15 15:50:17 +08:00
    bobopu
        1
    bobopu  
       2015-04-13 23:14:28 +08:00 via iPad
    windows下别的不用考虑,就iis,网上一堆测试文档。
    vinsony
        2
    vinsony  
       2015-04-13 23:35:38 +08:00
    iis7也很快的
    ifconfig
        3
    ifconfig  
       2015-04-14 00:11:21 +08:00
    win下就IIS,没有哪个web server了把?
    fastcgi在win下比较流行,然后其实memcache已经够了,不用太在乎op cache,毕竟访问量真的大起来,楼主不会想用windows搞负载集群方案吧,脑补画面中orz....
    litt7e
        4
    litt7e  
    OP
       2015-04-14 00:41:26 +08:00
    @ifconfig 生产环境apache可选啊,还有个过气的lighthttpd。暂时只能在win server下,所以尽量挖掘单机的性能,iis扩展做集群倒是也不麻烦,只是定制略蛋疼。本来初定的方案就是iis7.5+wincache+redis/memcache,上来问问看有没有更优的细化方案
    babytomas
        5
    babytomas  
       2015-04-14 00:41:58 +08:00
    我觉得吧

    使用 windows 搭建 PHP 的话本来就不应该,就应该使用 linux/unix 的
    litt7e
        6
    litt7e  
    OP
       2015-04-14 00:46:17 +08:00
    @babytomas 这个是合同指定的。不过不大同意你这句,php的win主机其实是最多的,只是绝大多数不在乎性能,没到瓶颈,而我这个刚好访问量有点大,需要调优
    Tianpu
        7
    Tianpu  
       2015-04-14 00:52:36 +08:00
    唯一选择:iis+sapi
    vibbow
        8
    vibbow  
       2015-04-14 00:59:11 +08:00 via Android
    iis + fcgi +php
    性能比同配置下的
    linux nginx fcgi php
    还要好一些

    wincache也是必须得上的
    Admstor
        9
    Admstor  
       2015-04-14 09:33:05 +08:00
    IIS性能并不差,或者说win下因为别的运行方式问题,都不如IIS
    另外PHP5.3开始不再支持isapi方式了,所以基本上都是IIS+fastcgi来运行

    win下纯静态也依旧是IIS,这点和上一点理由一样
    litt7e
        10
    litt7e  
    OP
       2015-04-14 12:03:26 +08:00
    @vibbow 比lnmp好没有吧,同样的硬件下,l系的资源效率更高,之前有win比较过,不过没正式迁移过来,这次动真格了
    litt7e
        11
    litt7e  
    OP
       2015-04-14 12:05:10 +08:00
    @Admstor 嗯,纯脚本的差距可以忽略,准备用5.4和5.6各试一下
    msg7086
        12
    msg7086  
       2015-04-14 13:21:38 +08:00
    @litt7e 考虑到windows那么高的成本,很怀疑你说的「最多」两字。
    如果你用Windows就是IIS,Apache基本就算是Linux家的别多想了。
    (而且Apache本身大负载效率也是个问号)
    hdshen
        13
    hdshen  
       2015-04-14 15:01:21 +08:00
    纯静态HTML 推荐 lighthttpd 和 nginx

    win下 也是可以用 nginx的。。。 没啥问题

    访问量不大 就IIS吧 省事
    vibbow
        14
    vibbow  
       2015-04-14 15:16:41 +08:00 via Android
    @litt7e 动态文件,IIS 7跑PHP要比Nginx略微快一点的。
    jarlyyn
        15
    jarlyyn  
       2015-04-14 16:52:35 +08:00
    丢一个xampp吧,以前是丢zendserver的,不过zendsever没ce版本下载了。

    性能的话,说真的,应该不是重点吧……

    跑apache不就是为了.htaccess支持么。不喜欢配web.config
    vibbow
        16
    vibbow  
       2015-04-14 20:05:29 +08:00
    @jarlyyn 伪静态的话IIS可以直接导入Apache的.htaccess文件......
    xuhaoyangx
        17
    xuhaoyangx  
       2015-04-14 20:26:17 +08:00
    nginx 曾经用过在WIN的机子做过nginx+php和部分反代,稳定性还是不错的
    jarlyyn
        18
    jarlyyn  
       2015-04-14 20:46:46 +08:00
    @vibbow
    当然是有问题的。
    当年跑个drupal 都会有问题……
    vibbow
        19
    vibbow  
       2015-04-14 21:24:27 +08:00
    @jarlyyn 当年是哪年?
    geeklian
        20
    geeklian  
       2015-04-14 21:52:14 +08:00
    http://php.iis.net/

    不管是php还是python之类的,iis都是windows下最佳的部署方式。虽然linux下总有更好的解决方案,但在windows下,iis甩apache win32和nginx win32几条街都不知道....



    参见http://www.iis.net/learn/application-frameworks/install-and-configure-php-applications-on-iis/using-fastcgi-to-host-php-applications-on-iis

    相比于其他的开源语言,php在windows下算优化最好的
    内存>4G的情况下,iis7 + fastcgi 可以提供接近linux下nginx + php + fastcgi的性能。

    你要说1G内存的机器比较win32 vs linux...那就是较真了。
    litt7e
        21
    litt7e  
    OP
       2015-04-14 22:39:32 +08:00
    如何保证高并发下的快速响应,可有良策?我是想几个热门通用页面完全缓存(如访客首页,排行页),常用数据集(如配置信息/分类排行)放内存,个性页面文件缓存,命中全失败再去读数据库。静态文件js/css/img/swf单独设cdn路径
    @geeklian @ifconfig @vibbow @Admstor
    vibbow
        22
    vibbow  
       2015-04-14 22:46:37 +08:00
    @litt7e 基本上也就这些东西了
    顺便,Web Farm Framework是个好东西。
    vibbow
        23
    vibbow  
       2015-04-14 22:48:22 +08:00
    @geeklian 我当年16G内存+SSD+i7的情况下测试,IIS fcgi php提供了略微好于 Linux Nginx fcgi php 的性能.....
    vibbow
        24
    vibbow  
       2015-04-14 22:48:58 +08:00
    @geeklian 我个人把这归结于闭源的驱动比开源的驱动性能要好......
    ifconfig
        25
    ifconfig  
       2015-04-14 23:33:26 +08:00
    回楼主,排行系统可以用redis来做,个性页面一般生成了页面缓存,等用户更新资料再生成一次缓存就好了。redis很少出现命中失败吧?做好异常就行了
    litt7e
        26
    litt7e  
    OP
       2015-04-15 00:57:03 +08:00
    @vibbow wff有装,不过我之前的数据是lnmp占优的,同样硬件下,内存使用和IO尤其高效一些
    litt7e
        27
    litt7e  
    OP
       2015-04-15 00:58:25 +08:00
    @ifconfig 还是有很大几率的,容量有上线,一旦高峰期可能会频繁过期,还涉及一个热度频率的问题,估计得上线了再分析再调整。。
    vibbow
        28
    vibbow  
       2015-04-15 01:39:12 +08:00 via Android
    @litt7e 静态文件nginx更快
    但是fcgi性能就不好说了
    jarlyyn
        29
    jarlyyn  
       2015-04-15 15:17:58 +08:00
    @vibbow
    大概是去年,要么是千年。

    主要是当子目录里也有.htaccess的时候,会报错。

    drupal有两个模块自己会在子目录里生成这玩意。

    当然,环境不是我配的,不知道是否能解决这个问题。
    vibbow
        30
    vibbow  
       2015-04-15 15:50:17 +08:00 via Android
    @jarlyyn 那是因为用了第三方的htaccess软件。
    微软自己也出了一套的,不是直接使用htaccess,而是
    有工具可以转换成web.config
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3587 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 04:36 · PVG 12:36 · LAX 20:36 · JFK 23:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.