web.py+nginx+fastcgi做了个小站,放线上环境测试时发现静态文件无法缓存,表单无法提交,求助。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
paloalto
V2EX    NGINX

web.py+nginx+fastcgi做了个小站,放线上环境测试时发现静态文件无法缓存,表单无法提交,求助。

  •  
  •   paloalto 2012-08-21 08:06:23 +08:00 4476 次点击
    这是一个创建于 4868 天前的主题,其中的信息可能已经有所发展或是发生改变。
    不要脸一回,放出地址: http://2wen.it 还没开发完,界面也没设计,程序是自己从零开始边学边写的。

    本地开发测试一直正常,昨晚放线上之后问题一大堆,现在连注册都不能。

    nginx中的server配置如下:



    目前发现的主要有两个问题:
    1.第一个server(是一个静态网站)中的图片、css、js都可以缓存的,为什么同样的配置到了第二个sever(开发中的项目)上就不行了呢?是不是因为fastcgi的原因?

    2. http://2wen.it 中的表单提交时(注册、登录等)都会跳转到错误的url导致提交不成功,不知道是不是需要在nginx中加rewrite?
    15 条回复    1970-01-01 08:00:00 +08:00
    Livid
        1
    Livid  
    MOD
    PRO
       2012-08-21 08:29:11 +08:00
    注册和登陆之后跳转到错误地址的问题,看起来更像是程序导致的,和 nginx 应该没什么关系。
    ray1980
        2
    ray1980  
       2012-08-21 08:37:48 +08:00
    @paloalto 有学习笔记之类的么?LNMP怎么添加能运行WEE.PY的环境?
    aggron /td>
        3
    aggron  
       2012-08-21 08:51:48 +08:00
    include fastcgi_params; 这一行看起来是多余的,后面已经写了参数了
    paloalto
        4
    paloalto  
    OP
       2012-08-21 08:59:55 +08:00
    @Livid 但是本地环境是没问题的,我在本地一直用的是web.py自带的那个开发服务器来开发:
    $ python application.py
    http://0.0.0.0:8080

    这是account.py中login部分的代码:
    http://gist.github.com/3409951


    @ray1980 我只记了刚开始时的一点 http://blog.han.im/category/%E7%BC%96%E7%A8%8B/ ,后来遇到的问题太多,都记不过来了。 像是什么从数据库中批量增删改查、多表查询等,乱七八糟的,现在只求能把东西做完了,然后回过头来重新做一遍。

    我记得我的vps就是用LNMP装的, http://webpy.org/install.zh-cn 这上面有教程,我基本上是跟着这个来的。记得在本地的mac os上装mysqldb时着实费了些劲。

    还有前段时间刚放到线上时,也遇到一些问题,比如“提示spawn-fcgi运行成功,但是 ps aux|grep application.py 和ps -ef都看不到进程”,“ImportError: No module named Image”等,都记在这里了 http://www.douban.com/note/229243774/ 。比较乱。
    aisk
        5
    aisk  
       2012-08-21 09:00:34 +08:00
    楼上的样式略恐怖
    paloalto
        6
    paloalto  
    OP
       2012-08-21 09:03:27 +08:00
    @aisk 哎呀,不能再编辑了。
    我贴了新的在这里

    http://gist.github.com/2aabae25d9136840e166
    paloalto
        7
    paloalto  
    OP
       2012-08-21 09:09:26 +08:00
    @aggron 注释掉之后,刷新页面发现请求还是200。似乎不是这里的原因。。。

    paloalto
        8
    paloalto  
    OP
       2012-08-21 09:13:34 +08:00
    @paloalto 哇塞!!!!那个跳转的问题竟然好了!!!

    我说怎么突然有了新用户注册,还纳闷他们怎么注册的呢,结果发现能登录注册了!哈哈哈哈哈!好像是刚才注释掉那一行的原因。
    paloalto
        9
    paloalto  
    OP
       2012-08-21 09:19:11 +08:00
    @aggron 上面那条@错了。补@。

    另外请各位慎重测试啊~~我那小vps只有256m内存,开了PHP/php-cgi和Python之后,只剩6m了啊~~

    我先把php关掉,自己的blog先不开了。
    aggron
        10
    aggron  
       2012-08-21 10:13:49 +08:00
    @paloalto 缓存配置是有效的,你按F5「刷新」页面看看是不是变成304了。直接在地址栏按回车和按F5来「刷新」页面效果是不同的
    这是 在地址栏按回车的header截图,
    可以看到有from cache的字样,我觉得是这样:缓存未过期的情况下,浏览器自己读了本地缓存,根本没有访问服务器,或许看看nginx静态文件的accesslog验证下
    当然我用的是chrome,其他浏览器下可能有所不同
    davidx
        11
    davidx  
       2012-08-21 11:00:43 +08:00
    既然所有的资源文件都在static下, 那就配置static里的东西都expires 30d就好了, 不用再判断文件名了
    paloalto
        12
    paloalto  
    OP
       2012-08-21 11:22:53 +08:00
    @aggron 哈哈。原来如此!你猜刚才怎么回事,原来是我把firebug - net 里的"disable browser cache"打上对号了。


    @davidx 是这么写吗?把下面的那两个图片和css/js的location删掉,把expires 30d;写到/static/里?

    location /static/ {
    if (-f $request_filename) {
    rewrite ^/static/(.*)$ /static/$1 break;
    expires 30d;
    }
    }
    davidx
        13
    davidx  
       2012-08-21 12:59:49 +08:00
    @paloalto 可以试试, 因为你有了rewrite, 我不敢保证一定行...
    重启nginx, 然后看access_log
    paloalto
        14
    paloalto  
    OP
       2012-08-21 15:50:33 +08:00
    @davidx 竟然可以!哈哈哈!
    davidx
        15
    davidx  
       2012-08-21 16:31:16 +08:00
    @paloalto great!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1198 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 17:32 PVG 01:32 LAX 09:32 JFK 12:32
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86