企业级Web Nginx 服务优化(4)

1.4nginx站点目录及文件URL访问的控制

1.4.1根据扩展名限制程序和文件访问

Nginx下禁止访问资源目录下的php程序文件,配置方法如下:

范例1:nginx配置限制指定目录下的php程序被解析:

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)

以下在些多个目录:

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_02

这些目录的限制必须写一下配置的前面:

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_03

范例二:Nginx下配置禁止访问*.txt文件

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_04

1.4.2禁止访问指定目录下所有的文件和目录

范例1:配置禁止访问指定的单个或者多个目录

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_05

范例2:记住你hi访问目录并返回指定的http状态码

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_06

14.3限制来源IP访问

使用nfx_http_access_module限制ip访问

范例1:禁止某目录让外界访问,但允许某IP访问该目录,且支持PHP解析

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_07

范例2限制及指定ip或ip段访问

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_08

1.5配置nginx图片及目录防盗链


1.6Nginx错误页面的优雅显示

1.6.1生产环境常见的HTTP状态码列表

http://oldboy.blog.51cto.com/2561410/716294

1.6.2为什么要配置错误页面优雅显示?

在网站运行的过程中,可能由于页面不存在或者系统过载等原因,导致网站无法正常影响用户请求,此时apache服务默认会返回系统默认的错误码及对应的很不友好的

页面。

我们可以将404,403等的错误信息页面重定向到网站页面或者其他指定的页面,提升网站的用户体验。

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_09

范例1 403错误的优雅显示一个实现:

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_10

范例2:404的优雅显示

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_11

提示注意以下写法是,/404.html 为/data0/www/bbs目录下的文件

范例3:50x页面本地单独目录下文件优雅显示:

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_12

范例4

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_13

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_14

范例5:

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_15


范例6:

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_16

门户网站的一个案例:

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_17

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_18

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

  1. [root@nginx-01 /]# mount -t tmpfs -o size=16m tmpfs /tmp/

  2. [root@nginx-01 /]# df -h

  3. Filesystem      Size  Used Avail Use% Mounted on

  4. /dev/sda2       4.8G  1.5G  3.2G  32% /

  5. tmpfs           112M     0  112M   0% /dev/shm

  6. /dev/sda1       190M   27M  153M  16% /boot

  7. tmpfs            16M     0   16M   0% /tmp

  8. [root@nginx-01 /]# echo "mount -t tmpfs -o size=16m tmpfs /tmp/" >>/etc/rc.local

  9. [root@nginx-01 /]# vim /etc/fstab 

  10. [root@nginx-01 /]# cat /etc/fstab 


  11. #

  12. # /etc/fstab

  13. # Created by anaconda on Sun May 31 23:25:40 2015

  14. #

  15. # Accessible filesystems, by reference, are maintained under '/dev/disk'

  16. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

  17. #

  18. UUID=280e071a-fce6-4500-864c-27aa5128b198 /                       ext4    defaults        1 1

  19. UUID=9e67b60b-4f53-4172-9f5d-85d1dbaf8fc2 /boot                   ext4    defaults        1 2

  20. UUID=10140018-4653-45e9-99bf-4eedf702e82c swap                    swap    defaults        0 0

  21. tmpfs                   /dev/shm                tmpfs   defaults        0 0

  22. devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

  23. sysfs                   /sys                    sysfs   defaults        0 0

  24. proc                    /proc    

最终的解决方案:

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_19

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_20

apache worker以及perfork模式

prefork模式(默认)

prefork使用的是多个子进程,而每隔子进程只有一个线程,每个进程在某个确定的时候只能维持一个连接。

工作原理:

控制进程最初建立若干个子进程,为了不在请求到来时在生成子进程,所以要根据需求不断的创建新的进程,最大可以达到每秒32个直到满足需求为止。

安装方法:

在变异的过程中,假如参数--with-mpm=prefork 如果不加也可以,因为默认的话,会用prefork模式

优点是效率高,稳定 安全。对于线程调试困难的平台来说,调试更加容易些。

缺点:比work模型消耗的资源比较多。

企业级Web Nginx 服务优化(4)_企业级Web Nginx 服务优化(4)_21