LAMP和LNMP深度优化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LAMP和LNMP深度优化相关的知识,希望对你有一定的参考价值。

LAMPLNMP web架构深度优化

企业连接数据库一般用域名,因为连接数据库的文件可能有多个,那么当一旦数据库ip改了,那么数据库连接的文件也都需要修改,这样极容易漏掉而出现错误,正确的做法是每个数据库连接文件里都写连接数据库的域名,然后在本地host里将数据库ip及域名做一个解析

 

数据库tar备份数据文件

必须停机才能保持备份的数据库和线上的一致,那么企业是不可能随意停机的,所以一般会用到热备工具如mysqldump等进行实时同步备份。

 

必须要总结的:

nginx.conf httpd.conf httpd-vhosts.conf httpd-mpm.conf my.cnf php.ini php-fpm.conf

 

1、隐藏nginx header

vi /application/nginx/conf/nginx.conf

http {

   server_tokens off 添加此行

 

}

 

隐藏apache header

vim /application/apache/conf/extra/httpd-default.conf

Serverfokens Prod

ServerSi gnature Off 添加这两行

 

2、更改nginx的用户组

在配置文件nginx.conf里将user nobody改为其他的。nginx默认主进程master processroot用户,可改动则需要更改nginx的端口,因为80端口默认需要root权限,此时更改下端口,再改下服务端口就行了。用root用户提供web对外服务非常危险,用户可上传很多东西把网站给覆盖掉,支付宝就是把所有服务跑在普通用户下。

 

3、修改nginx worker进程个数

一般高并发场景,但多了就有问题会卡,就会加大服务成本,默认worker_processes=1,

可按cpu核数来给,nginx.conf配置文件里改。查cpu cat /proc/cpuinfo

4、平均分配资源到不同cpu

默认情况nginx的多个进程可能更多的跑在一颗cpu上,修改方法添加worker_cpu_affinity 0001 0010 0100 1000 每个worke processes分配到独立的cpu上。top命令按1可查看cpu个数占用情况或grep physical id /proc/cpuinfo。最后可以实测一下用压力工具webbench -c 20000 -t 180 http://x.x.x.x

 

5、taskset  

设置cpu亲和力,比如让myslq跑在前三颗cpu上:taskset -c 1,2,3 /etc/init.d/mysql start

 

6、事件处理模型

在配置文件里将events字段添加为:use epoll;改为epoll模型。高并发软件如memcache都支持epoll模型。

 

7、修改worker_connections连接数

其实它意思是一个work进程数的连接数,可以改为4096即可。太大的话连接的用户过多也容易把服务器压垮。

 

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

server_names_hash_bucket_size 64

 

9、开启高效文件传输模式

sendfile on

tcp_nopush on

 

10、设置连接超时时间

3s以内网站的打开时用户对网站最佳的忍耐时间,大门户网站会有首屏,先打开一部分让用户看到,设置超时时间keepalive_timeout  60;

tcp_nodelay on;打开了keepalive参数后才有效。client_header_timeout 15;

php服务希望短连接,java希望长连接,因为java建立连接很消耗资源,而php很快。

client_header_timeout 15;客户端进来之后都不搞事会消耗资源。client_body_timeout 15

 

11、上传文件大小限制

client_max_body_size 10m;默认是2m

限制客户端请求多大的内容

 

12、fastcgi调优

fastcgi_connext_timeout 300

fastcgi_send_timeout 300

fastcgi_read_timeout 300

fastcgi_buffer_timeout 64k


fastcgi_ buffers 4 64k;分配464k缓冲区

 

13、隐藏或修改nginx 版本名称

在安装编译nginx之前到nginx的软件包里

vim  /home/weipeng/tools/nginx-1.6.2/src/http/ngx_http_header_filter_module.c 进行修改:技术分享


以上是关于LAMP和LNMP深度优化的主要内容,如果未能解决你的问题,请参考以下文章

LAMP与LNMP web架构深度优化实战-第二部

LAMP和LNMP加速与缓存优化

四十LAMP与LNMP加速与缓存优化进阶实战上部

完整构建LNMP,简单优化实现超高并发访问!

深度优化LNMP之MySQL

LAMP 架构深度优化记录