lamp/lnmp优化2--nginx

lamp或者lnmp架构优化之web,先说nginx的优化。

1.隐藏nginx header内版本号信息。

方法:在http标签内 加入 server_tokens off;

2.更改nginx默认用户和用户组。nginx服务启动默认用户为nobody,为了防止别人知道,我们可以改为别的用户名。

方法:我们可以在编译时候指定用户名和用户组,之后把这个用户shell设置为nologin。如果编译时候没有设定,可以打开配置文件 设置user username groupname。

3.配置nginx worker进程个数。建议设置和cpu核数相等或者2倍的进程数。

方法:worker_processes 数量

4.根据cpu核数进行优化。默认多个进程可能更多跑在一颗cpu上,这个优化可以使不同进程分配给不同cpu。

方法:添加worker_cpu_affinity参数 

eg.四核cpu:worker_cpu_affinity 0001 0010 0100 1000

5.事件处理模型优化。在linux操作系统下,多用epoll模型;win下多用icop等。

方法:在events标签下 添加 use epoll

6.调整单个进程允许客户端最大连接数

方法:在events标签下添加 worker_connections 512字段。连接数根据自己更改。

7.配置单个进程最大打开文件数

方法:添加worker_rlimit_nofile 65535字段。

8.优化服务器名字hash表大小

方法:在配置虚拟主机时,尽量写详细域名,把常用域名写在前面,尽量不写通配符。

9.开启高效传输模式

方法:添加sendfile on字段

10.设置超时连接时间

方法:添加以下字段

keepalive_timeout 60 设置客户端保持会话时间

tcp_nodelay on 这个字段在keepalive设置后才生效

client_header_timeout 15设置客户端请求头读取超时时间,如果超时,客户端没发送任何数据,nginx返回408

client_body_timeout 15客户端请求主体读取超时时间,效果同上。

send_timeout 15 指定响应客户端超时时间,如果超时客户端无活动会自动关闭nginx连接。

11.上传文件大小限制

方法:添加字段 client_max_body_size 10m

12.fastcgi调优 

方法:

fastcgi_connecttion_timeout 300 指定连接后端fastcgi超时时间

fastcgi_send_timeout 300 向fastcgi发送请求超时时间(已完成两次握手,等待最后确认)

fastcgi_read_timeout 300 接收fastcgi应答超时时间(已完成两次握手,等待应答)

fastcgi_buffer_size 64k 读取内容缓存区大小

fastcgi_buffers 4 64k 用多少多大缓冲区应答请求

fastcgi_busy_buffer_size 128k fastcgi繁忙时buffer大小

fastcgi_temp_file_write_size 128k fastcgi临时文件用多大数据块,建议fastcgi_buffers两倍

fastcgi_cache name 开启fastcgi缓存并且指定一个名称

fastcgi_cache_valid 这个字段可以设置缓存时间

13.隐藏nginx软件名称。需要改源码,上网百度之。

14.nginx压缩功能,对压缩比比较高的内容压缩。例如对代码(js,css,html)压缩,(图片,视频,flash)不压缩

首先设置gzip on字段

之后设置压缩长度 gzip_min_length 1k小于1k文件不压缩

gzip_buffers 4 16k压缩缓冲区大小

gzip_comp_level 2压缩等级设置

gzip_types text/plain application/x-javascript text/css 设置压缩类型

gzip_vary on让缓存服务器缓存压缩过的页面

15.expires缓存功能。浏览器缓存时间,设置好可以减轻服务器压力。需要缓存的缓存,不需要缓存的不缓存。

一般和location配合使用,用location指定缓存内容,加入expires 365d指定时间。

16.防爬虫,请百度

17.nginx日志轮训,默认不轮训,无限往一个文件里面写。

方法:给日志改名,重新加载nginx,重新生成日志。

18.不记录不需要的访问日志。例如,健康检查,js,css,图片不需要记录。

方法:配合location使用 access_log off

19.最小化目录及文件权限设置。

方法:所有站点目录用户和组都应该改为root,目录权限755,文件权限644

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

方法:使用location指定内容,禁止可执行文件执行 deny all

21.限制来源ip访问

方法:使用location指定内容,禁止部分ip访问 deny

22.返回http状态码

方法:error_page 404 /404.html


   apache的优化点和nginx一致。首先apache的工作模式有两种,一种是prefork模式(默认),一种是worker模式。prefork模式父进程可以创建多个子进程(进程池),每个进程只能维持一个连接。优点是高效稳定安全,但是比worker模式消耗资源多,并发量没有worker多,这部分的配置在<IfModule mpm_prefork_module>标签内。worker模式是进程和线程结合的模式,主进程下面有多个子进程,子进程下面又有多个线程,每个线程维持一个连接。优点是高并发,缺点是一个线程挂了,有可能导致进程死掉,这部分的配置在<IfModule mpm_worker_module>标签内。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值