从apache到nginx爬过的那些坑
有人问我为什么要从apache换到nginx?
- 轻量级,同样起web 服务,比apache占用更少的内存及资源;
- 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的;
- 在高并发下nginx 能保持低资源低消耗高性能;
- 高度模块化的设计,编写模块相对简单;
- 社区活跃,各种高性能模块出品迅速啊;
- 最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程
- 最重要的是,我对nginx的了解比apache深。
关于nginx反向代理的了解可以参考这篇知乎
上图能够详细的阐述了正向代理和nginx方向代理的概念,如果还不能够理解的话,再加上这句话:
正向代理代理的对象是客户端,反向代理代理的对象是服务端。
我其中的一篇博文《零基础http代理http完美代理访问》就是正向代理。
从apache到nginx爬过哪些坑?
- 本来我是想从LAMP到LANMP,由于对apache的一个坎我跨不过去,所以从LAMP换到LNMP;
- 我看过文武双全cc攻击的一篇文章,里面写道:CC攻击防御手段一:将服务器从nginx+apache切换成纯nginx了;
- apache的默认端口是80,把apache的端口改成其他端口(90,8000,8080等),访问的时候301自动跳转到80端口!!!这个问题我网上搜过很多资料,全部都是一个答案,而且这个答案并不能解决,问过很多PHP大神,他们也没遇到这些问题。所以我就放弃了LANMP的想法,直接用LNMP了。从此“终生不娶apache,一生只爱nginx”;
nginx支持php的配置文件
1 2 3 4 5 6 7 |
location ~ \.php$ { root /usr/local/nginx/html; #php文件防止的目录(绝对路径) fastcgi_pass 127.0.0.1:9000; #php环境默认是9000端口 fastcgi_index index.php; #首页 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #默认是:/scripts$fastcgi_script_name; include fastcgi_params; } |
勤学的人,总是感到时间过得太快;
懒惰的人,总是埋怨时间跑得太慢。
发表评论