企业级Web Nginx 服务优化(4)
1.4nginx站点目录及文件URL访问的控制
1.4.1根据扩展名限制程序和文件访问
Nginx下禁止访问资源目录下的php程序文件,配置方法如下:
范例1:nginx配置限制指定目录下的php程序被解析:
以下在些多个目录:
这些目录的限制必须写一下配置的前面:
范例二:Nginx下配置禁止访问*.txt文件
1.4.2禁止访问指定目录下所有的文件和目录
范例1:配置禁止访问指定的单个或者多个目录
范例2:记住你hi访问目录并返回指定的http状态码
14.3限制来源IP访问
使用nfx_http_access_module限制ip访问
范例1:禁止某目录让外界访问,但允许某IP访问该目录,且支持PHP解析
范例2限制及指定ip或ip段访问
1.5配置nginx图片及目录防盗链
1.6Nginx错误页面的优雅显示
1.6.1生产环境常见的HTTP状态码列表
http://oldboy.blog.51cto.com/2561410/716294
1.6.2为什么要配置错误页面优雅显示?
在网站运行的过程中,可能由于页面不存在或者系统过载等原因,导致网站无法正常影响用户请求,此时apache服务默认会返回系统默认的错误码及对应的很不友好的
页面。
我们可以将404,403等的错误信息页面重定向到网站页面或者其他指定的页面,提升网站的用户体验。
范例1 403错误的优雅显示一个实现:
范例2:404的优雅显示
提示注意以下写法是,/404.html 为/data0/www/bbs目录下的文件
范例3:50x页面本地单独目录下文件优雅显示:
范例4
范例5:
范例6:
门户网站的一个案例:
13取得正确途径取得nginx源代码
14系统内核的优化
15使用tmfs文件系统替代频繁访问的目录
16经可能http请求数
重现500的错误是!
apache的下面
1.18使用tmpfs文件系统替换频繁的目录
tmpfs是一种基于内存的文件系统,它和虚拟磁盘ramdisk比较类似像,但不完全相同,和ramdisk一样,tmpfs可以使用RAM,但它也可以使用swap分区来存储。而且传统的ramdisk是个块设备,要用mkfs来格式化它,才能真正地使用它;而tmpfs是一个文件系统,并不是块设备,只是安装它,就可以使用了。tmpfs是最好的基于RAM的文件系统。
【sa】php图片上传php服务异常最终解决方案mount tmpfs
[root@nginx-01 /]# mount -t tmpfs -o size=16m tmpfs /tmp/
[root@nginx-01 /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 4.8G 1.5G 3.2G 32% /
tmpfs 112M 0 112M 0% /dev/shm
/dev/sda1 190M 27M 153M 16% /boot
tmpfs 16M 0 16M 0% /tmp
[root@nginx-01 /]# echo "mount -t tmpfs -o size=16m tmpfs /tmp/" >>/etc/rc.local
[root@nginx-01 /]# vim /etc/fstab
[root@nginx-01 /]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun May 31 23:25:40 2015
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=280e071a-fce6-4500-864c-27aa5128b198 / ext4 defaults 1 1
UUID=9e67b60b-4f53-4172-9f5d-85d1dbaf8fc2 /boot ext4 defaults 1 2
UUID=10140018-4653-45e9-99bf-4eedf702e82c swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc
最终的解决方案:
apache worker以及perfork模式
prefork模式(默认)
prefork使用的是多个子进程,而每隔子进程只有一个线程,每个进程在某个确定的时候只能维持一个连接。
工作原理:
控制进程最初建立若干个子进程,为了不在请求到来时在生成子进程,所以要根据需求不断的创建新的进程,最大可以达到每秒32个直到满足需求为止。
安装方法:
在变异的过程中,假如参数--with-mpm=prefork 如果不加也可以,因为默认的话,会用prefork模式
优点是效率高,稳定 安全。对于线程调试困难的平台来说,调试更加容易些。
缺点:比work模型消耗的资源比较多。