技术解析

web.py+nginx+fastcgi做了个小站,放线上环境测试时发现静态文件无法缓存,表单无法提交,求助。
0
2021-05-31 08:47:40
idczone
不要脸一回,放出地址: http://2wen.it 还没开发完,界面也没设计,程序是自己从零开始边学边写的。

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

nginx中的server配置如下:



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

2. http://2wen.it 中的表单提交时(注册、登录等)都会跳转到错误的url导致提交不成功,不知道是不是需要在nginx中加rewrite?
注册和登陆之后跳转到错误地址的问题,看起来更像是程序导致的,和 nginx 应该没什么关系。

有学习笔记之类的么?LNMP怎么添加能运行WEE.PY的环境?

include fastcgi_params; 这一行看起来是多余的,后面已经写了参数了

但是本地环境是没问题的,我在本地一直用的是web.py自带的那个开发服务器来开发:
$ python application.py
http://0.0.0.0:8080
这是account.py中login部分的代码:
http://gist.github.com/3409951

我只记了刚开始时的一点 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/ 。比较乱。

楼上的样式略恐怖

哎呀,不能再编辑了。
我贴了新的在这里
http://gist.github.com/2aabae25d9136840e166

注释掉之后,刷新页面发现请求还是200。似乎不是这里的原因。。。


哇塞!!!!那个跳转的问题竟然好了!!!
我说怎么突然有了新用户注册,还纳闷他们怎么注册的呢,结果发现能登录注册了!哈哈哈哈哈!好像是刚才注释掉那一行的原因。

上面那条@错了。补@。
另外请各位慎重测试啊~~我那小vps只有256m内存,开了PHP/php-cgi和Python之后,只剩6m了啊~~
我先把php关掉,自己的blog先不开了。

缓存配置是有效的,你按F5「刷新」页面看看是不是变成304了。直接在地址栏按回车和按F5来「刷新」页面效果是不同的
这是 在地址栏按回车的header截图,
可以看到有from cache的字样,我觉得是这样:缓存未过期的情况下,浏览器自己读了本地缓存,根本没有访问服务器,或许看看nginx静态文件的accesslog验证下
当然我用的是chrome,其他浏览器下可能有所不同

既然所有的资源文件都在static下, 那就配置static里的东西都expires 30d就好了, 不用再判断文件名了

哈哈。原来如此!你猜刚才怎么回事,原来是我把firebug - net 里的"disable browser cache"打上对号了。

是这么写吗?把下面的那两个图片和css/js的location删掉,把expires 30d;写到/static/里?
location /static/ {
if (-f $request_filename) {
rewrite ^/static/(.*)$ /static/$1 break;
expires 30d;
}
}

可以试试, 因为你有了rewrite, 我不敢保证一定行...
重启nginx, 然后看access_log

竟然可以!哈哈哈!

great!

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服