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

简介:

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

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

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

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

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

wKioL1ihYdHwAbaRAAApHNW1IY0721.jpg-wh_50

以下在些多个目录:

wKiom1ihYeyQt6SMAAAY0MS3gpI054.jpg-wh_50

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

wKiom1ihYhGRThjMAAAjk4yZmNg561.jpg-wh_50

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

wKiom1ihYizA7gJWAAAwvtITxyI243.jpg-wh_50

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

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

wKiom1ihYlDh5svoAAApDrge1vI107.jpg-wh_50

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

wKioL1ihYnajAjPBAABHUTWIkO8179.jpg-wh_50

14.3限制来源IP访问

使用nfx_http_access_module限制ip访问

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

wKiom1ihYpmT7S2QAAA85qFw6rk894.jpg-wh_50

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

wKiom1ihYrvjkeSrAAAt6Jk2QUs476.jpg-wh_50

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


1.6Nginx错误页面的优雅显示

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

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

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

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

页面。

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

wKiom1ihYtugLt66AAAebwmk26E575.png-wh_50

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

wKioL1ihYwyiEPA8AAAviMmwj5Y440.jpg-wh_50

范例2:404的优雅显示

wKiom1ihYyfBr5zPAAA3xkqSXXs847.jpg-wh_50

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

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

wKiom1ihY0-QebWhAABCDgdJRPM070.jpg-wh_50

范例4

wKioL1ihY3Sj7XCVAABBPXu6TRM668.jpg-wh_50

wKioL1ihY42jhqDuAAAfjYt5KUw757.jpg-wh_50

范例5:

wKiom1ihY6nwMzPbAABILxzx1_8005.jpg-wh_50


范例6:

wKioL1ihY8_Qv67hAAAxxTFuzwU089.jpg-wh_50

门户网站的一个案例:

wKioL1ihY-yDMDhqAAB0ox5fNZY250.jpg-wh_50

wKiom1ihZAOSSIhgAAA2u8h36qE139.jpg-wh_50

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    

最终的解决方案:

wKioL1ihZKTRYCEXAABVvl9MdtA357.jpg-wh_50

wKioL1ihZL3Rx22ZAABlCvJKxQ4033.jpg-wh_50

apache worker以及perfork模式

prefork模式(默认)

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

工作原理:

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

安装方法:

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

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

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

wKiom1ihZOLQ4fwKAAAw0481x9Q981.png-wh_50










本文转自 妙曼  51CTO博客,原文链接:http://blog.51cto.com/yanruohan/1897334,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
XML JSON 数据安全/隐私保护
Web服务
【10月更文挑战第18天】Web服务
48 9
|
1月前
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
64 5
|
1月前
|
XML JSON 安全
Web服务是通过标准化的通信协议和数据格式
【10月更文挑战第18天】Web服务是通过标准化的通信协议和数据格式
150 69
|
13天前
|
负载均衡 前端开发 JavaScript
Nginx 代理多服务
以上是 Nginx 代理多服务的几种常见方式,在实际应用中,可以根据具体的业务需求和系统架构选择合适的代理方式,并结合其他 Nginx 的功能和配置来优化和完善系统的性能和功能。
|
14天前
|
Go UED
Go Web服务中如何优雅平滑重启?
在生产环境中,服务升级时如何确保不中断当前请求并应用新代码是一个挑战。本文介绍了如何使用 Go 语言的 `endless` 包实现服务的优雅重启,确保在不停止服务的情况下完成无缝升级。通过示例代码和测试步骤,详细展示了 `endless` 包的工作原理和实际应用。
33 3
|
15天前
|
JSON Go UED
Go Web服务中如何优雅关机?
在构建 Web 服务时,优雅关机是一个关键的技术点,它确保服务关闭时所有正在处理的请求都能顺利完成。本文通过一个简单的 Go 语言示例,展示了如何使用 Gin 框架实现优雅关机。通过捕获系统信号和使用 `http.Server` 的 `Shutdown` 方法,我们可以在服务关闭前等待所有请求处理完毕,从而提升用户体验,避免数据丢失或不一致。
15 1
|
21天前
|
XML 安全 PHP
PHP与SOAP Web服务开发:基础与进阶教程
本文介绍了PHP与SOAP Web服务的基础和进阶知识,涵盖SOAP的基本概念、PHP中的SoapServer和SoapClient类的使用方法,以及服务端和客户端的开发示例。此外,还探讨了安全性、性能优化等高级主题,帮助开发者掌握更高效的Web服务开发技巧。
|
1月前
|
XML JSON 安全
定义Web服务
【10月更文挑战第18天】定义Web服务
62 12
|
30天前
|
缓存 负载均衡 应用服务中间件
Nginx 实现一个端口代理多个前后端服务
【10月更文挑战第19天】Nginx 的强大功能不仅限于此,它还可以与其他技术和工具相结合,为我们的应用提供更强大的支持和保障。在不断发展的互联网时代,掌握 Nginx 的使用技巧将为我们的工作和生活带来更多的便利和效益。
|
1月前
|
前端开发 Java API
JAVA Web 服务及底层框架原理
【10月更文挑战第1天】Java Web 服务是基于 Java 编程语言用于开发分布式网络应用程序的一种技术。它通常运行在 Web 服务器上,并通过 HTTP 协议与客户端进行通信。
26 1
下一篇
无影云桌面