企业级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,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
开发框架 监控 安全
Windows Defender 导致 Web IIS 服务异常停止排查
某日凌晨IIS服务异常停止,经查为Windows Defender安全补丁KB2267602触发引擎更新,导致系统资源波动,进而引发应用池回收。确认非人为操作,系统无重启。通过分析日志与监控,定位原因为Defender更新后扫描加重负载。解决方案:将IIS及.NET相关路径添加至Defender排除列表,避免业务影响。
338 116
|
6月前
|
开发框架 安全 前端开发
Go Web开发框架实践:模板渲染与静态资源服务
Gin 是一个功能强大的 Go Web 框架,不仅适用于构建 API 服务,还支持 HTML 模板渲染和静态资源托管。它可以帮助开发者快速搭建中小型网站,并提供灵活的模板语法、自定义函数、静态文件映射等功能,同时兼容 Go 的 html/template 引擎,具备高效且安全的页面渲染能力。
|
6月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。
|
7月前
|
存储 应用服务中间件 nginx
在使用Nginx之后,如何在web应用中获取用户IP以及相关原理
但总的来说,通过理解网络通信的基础知识,了解http协议以及nginx的工作方式,我们已经能在大多数情况下准确地获取用户的真实IP地址了,在调试问题或者记录日志时会起到很大的帮助。
352 37
|
8月前
|
中间件 Go
Golang | Gin:net/http与Gin启动web服务的简单比较
总的来说,`net/http`和 `Gin`都是优秀的库,它们各有优缺点。你应该根据你的需求和经验来选择最适合你的工具。希望这个比较可以帮助你做出决策。
338 35
|
10月前
|
数据采集 Web App开发 API
FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
本文介绍了如何使用FastAPI和Selenium搭建RESTful接口,访问免版权图片网站Pixabay并采集图片及其描述信息。通过配置代理IP、User-Agent和Cookie,提高爬虫的稳定性和防封禁能力。环境依赖包括FastAPI、Uvicorn和Selenium等库。代码示例展示了完整的实现过程,涵盖代理设置、浏览器模拟及数据提取,并提供了详细的中文注释。适用于需要高效、稳定的Web数据抓取服务的开发者。
549 15
FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
|
10月前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
634 7
|
负载均衡 前端开发 JavaScript
Nginx 代理多服务
以上是 Nginx 代理多服务的几种常见方式,在实际应用中,可以根据具体的业务需求和系统架构选择合适的代理方式,并结合其他 Nginx 的功能和配置来优化和完善系统的性能和功能。
|
Go UED
Go Web服务中如何优雅平滑重启?
在生产环境中,服务升级时如何确保不中断当前请求并应用新代码是一个挑战。本文介绍了如何使用 Go 语言的 `endless` 包实现服务的优雅重启,确保在不停止服务的情况下完成无缝升级。通过示例代码和测试步骤,详细展示了 `endless` 包的工作原理和实际应用。
281 3
|
2月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
224 4

热门文章

最新文章