nginx client intended to send too large body错误解决

最近在搞文件上传的东西,但碰到了一个问题,就是上传的文件如果稍微有点大的时候,
就报了这样的错误:

2018/05/02 08:15:45 [error] 11091#11091: *4261 client intended to send too large body: 5251073 bytes, client: xx.xx.xx.xx, server: xx.xx.xx.xx, request: "POST /index.php HTTP/1.1", host: "xx.xx.xx.xx:8081"

这是nginx的client_max_body_size默认是1m,如果超过这个值,就会报上面的错误了。
继续阅读

nginx反向代理配置

vhost配置

server {
  listen 80;
  server_name xx1.pouman.com;
  location / {
    proxy_pass http://xx2.pouman.com;
    proxy_set_header Host 127.0.0.1:80;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Via "nginx";
  }
}

继续阅读

nginx静态资源POST报405错误解决

为了学习B-jui前端框架,下载了他们的源码进行DEMO测试
但里面数据都是静态json文件返回的,导致报了405错误
在网上找了一些方法,好像都没有管用,可能是因为之前的方法太过古老,
后来自己想了一个方法解决了,因为这个错误是POST导致的,用GET就没有问题
所以只要是post请求json文件,重定向用get请求就行
继续阅读

隐藏nginx的版本号

vim /usr/local/nginx/conf/nginx.conf
在http作用域加上server_tokens off;

http {
#...
	server_tokens off;
#...
}

vim /usr/local/nginx/conf/fcgi.conf
把/$nginx_version去掉

#fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
fastcgi_param  SERVER_SOFTWARE    nginx;

然后重载nginx
/usr/local/nginx/sbin/nginx -s reload

继续阅读

豆瓣的架构-专访豆瓣网站的技术总监洪强宁

本刊记者:好,现在开始,豆瓣是一个非常著名的Web2.0网站,你们的开发语言选择的是Python,我想问的是,为什么选择Python?

洪强宁:我们选择Python的理由是它是动态语言,具有动态语言的优点,比如开发特别迅速。我们做的是一个Web2.0的网站,这种网站的特点就是alwaysbeta,用户的需求在随时发生变化,我们也不断发现新的价值。所以网站的结构和程序会不断变化,如果用Java做,你的开发量比较大,你就难以做出迅速地改变。 Python的特点就是开发迅速,你可以在一两个小时,就做出一个功能。或者说已¾¬上线了,用户反映需要某一功能,也可以比较快地做出来。

本刊记者:这就是TDD,敏捷开发的思路,和传统的方式有些不同。但是会有另一方面的问题,Python的程序员好找吗?在国内会Python的要比会Java程序员少的多。

洪强宁:对,确实是。在中国用Python的人确实不多,也给我们寻找开发任何人员带来困难。不过从另一方面说,也有好处,因为没有一个学校去教 Python,会Python的人都是自己学的,也就是说他知道自己需要什么技术,而且能够通过自学掌握它,包括Python的资料中文比较少,需要学习者接触第一手资料,这都使得Python程序员的平均水平,要比使用其他热门语言的平均水平要高。另一方面Python也越来越流行,在国外比较流行的动态语言有Perl,和Python,现在Python已经超过了Perl。
继续阅读