linux 20s运行一次,Linux学习笔记---nginx深度优化及lnmp安装

走路带着风,行色匆匆。 。 。

下面的都是nginx深度优化的具体介绍包括(优化cpu亲和力,优化隐藏nginx版本号,优化防盗链,优化文件访问数量等等)。

1:>>>>先安装nginx服务器:

8c842af6bb1d88ff1a5a201b4433ce0c.png

11268a6bc10680ef46735a60bc6bedcf.png

[root@localhostnginx-1.14.0]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre --with-http_ssl_module --with-http_gzip_static_module --user=nginx --group=nginx

安装所需要的依赖包:

[root@localhost nginx-1.14.0]# yum -y install pcre-devel

[root@localhost nginx-1.14.0]# make && make install

[root@localhost nginx-1.14.0]# yum -y install openssl-devel

[root@localhost nginx-1.14.0]# make && make instal

ea11276e66f4c046440087b976dc37f3.png

相关选项说明:

–with-http_dav_module #增加 PUT,DELETE,MKCOL:创建集合,COPY 和 MOVE 方法

–with-http_stub_status_module #获取 Nginx 的状态统计信息

–with-http_addition_module #作为一个输出过滤器,支持不完全缓冲,分部分相应请求

–with-http_sub_module #允许一些其他文本替换 Nginx 相应中的一些文本

–with-http_flv_module #提供支持 flv 视频文件支持

–with-http_mp4_module #提供支持 mp4 视频文件支持,提供伪流媒体服务端支持

–with-http_ssl_module #启用 ngx_http_ssl_module

0c77936a7c3c40dd74fecdafca0939b4.png

安装配置完成。

2----->:再安装php:

e2170da2dc3c595f2b5c42cc45259fb4.png

安装 libmcrypt:

[root@localhost ~]# tar zxf libmcrypt-2.5.7.tar.gz

[root@localhost ~]#cd libmcrypt-2.5.7/

[root@localhost libmcrypt-2.5.7]# ./configure --prefix=/usr/local/libmcrypt && make && make install

(2)编译安装 php:

[root@localhost ~]#tar zxf php-5.6.27.tar.gz

[root@localhost ~]#tar cd php-5.6.27.tar.gz

[root@localhost php-5.6.27]# ./configure --prefix=/usr/local/php5.6 --with-mysqmysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts

再安装缺少的依赖包:

[root@localhost php-5.6.27]# yum -y install libxml2-devel

[root@localhost php-5.6.27]# yum -y install bzip2-devel

[root@localhost php-5.6.27]# make && make install (安装大约8分钟)

a811d98e341e267c539aa44af022f776.png

48294acec4a9290a07affd456b973f62.png

[root@localhost etc]# /etc/init.d/php-fpm restart

89bb18f04860d2ad8f36f67a1bbd33fe.png

再Linux主配置文件中更改:再编辑一个php文件并且能访问成功;

0dbbe91adaeb7e55dd9b988e870b630b.png

bfb002d9edec54170d5132cec9b26f73.png

197480f632e98280bafa84a3444532d6.png

一:nginx 配置项优化

(1):优化cpu亲和力:( Nginx 运行工作进程个数,一般我们设置 CPU 的核心或者核心数 x2) 优化后性能提升处理速度会更快

9615b84fb3a2afd6f5fe2aa61c536690.png

在这里我们还可以看到在查看的时候,work 进程是 nginx 程序用户,但是 master 进程还是root, 其中, master 是监控进程,也叫主进程, work 是工作进程,部分还有 cache 相关进程。

可以直接理解为 master 是管理员,work 进程才是为用户提供服务的!

如果不了解 cpu 的核数,可以 top 命令之后按 1 也可以看出来,也可以查看/proc/cpuinfo 文件#grep ^processor /proc/cpuinfo | wc –l

cpu亲和力进入主配置文件修改:

fc78e2d2955ed38634efeaef8a5a54b7.png

0af6dd365d37cc9f1d7ccfd40032e6be.png

Nginx 运行 CPU 亲和力:

869d00544c013912d85c49554bc5451f.png

e1a535767398df8ba33a7bba0326b4f2.png

Nginx 最多可以打开文件数:

这个指令是指当一个 nginx 进程打开的最多文件描述符数目,理论值应该是最多打开文件数;(ulimit -n)与 nginx 进程数相除,但是 nginx 分配请求并不是那么均匀,所以最好与 ulimit -n

的值保持一致。

注:

文件资源限制的配置可以在/etc/security/limits.conf 设置,针对 root/user 等各个用户或者*

代表所有用户来设置。

soft nofile 65535

hard nofile 65535

用户重新登录生效(ulimit -n)

859b269bb335352a91af083648d89640.png

4f02cd2b080c4cec2aefb38816268235.png

f84f7dda3ebad905108d2959d4472963.png

此优化已完成。

总结:优化cpu核心处理器可提升处理速度,优化文件数可提高用户最多打开的文件数。

(2):nginx事件处理模型优化:

**nginx 采用 epoll 事件模型,处理效率高

work_connections 是单个 worker 进程允许客户端最大连接数,**这个数值一般根据服务器性能和内存来制定

multi_accept 告诉 nginx 收到一个新连接通知后接受尽可能多的连接

86b774600cefd943619bc711e0b447ab.png

(3)开启高效传输模式:

239e6b9422db6b5bd8e0e2e74ad97699.png

4:优化连接超时时间:

主要目的是保护服务器资源,CPU,内存,控制连接数,因为建立连接也是需要消耗资源的;

47c6fa1fac1d203464fd7d9e241c073f.png

keepalived_timeout 客户端连接保持会话超时时间,超过这个时间,服务器断开这个链接

tcp_nodelay;也是防止网络阻塞,不过要包涵在 keepalived 参数才有效

client_header_buffer_size 4k;

客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求头的

大小不会超过 1k,不过由于一般系统分页都要大于 1k,所以这里设置为分页大小。分页大

小可以用命令 getconf PAGESIZE 取得。

open_file_cache max=102400 inactive=20s;

这个将为打开文件指定缓存,默认是没有启用的,max 指定缓存数量,建议和打开文件

数一致,inactive 是指经过多长时间文件没被请求后删除缓存。

open_file_cache_valid 30s;

这个是指多长时间检查一次缓存的有效信息。

open_file_cache_min_uses 1;

open_file_cache 指令中的 inactive 参数时间内文件的最少使用次数,如果超过这个数字,文

件描述符一直是在缓存中打开的,如上例,如果有一个文件在 inactive 时间内一次没被使用,

它将被移除。

client_header_timeout 设置请求头的超时时间。我们也可以把这个设置低些,如果超过这个

时间没有发送任何数据,nginx 将返回 request time out 的错误

client_body_timeout 设置请求体的超时时间。我们也可以把这个设置低些,超过这个时间没

有发送任何数据,和上面一样的错误提示

reset_timeout_connection 告诉 nginx 关闭不响应的客户端连接。这将会释放那个客户端所

占有的内存空间。

send_timeout 响应客户端超时时间,这个超时时间仅限于两个活动之间的时间,如果超过

这个时间,客户端没有任何活动,nginx 关闭连接

server_tokens 并不会让 nginx 执行的速度更快,但它可以关闭在错误页面中的 nginx 版本

数字,这样对于安全性是有好处的。

client_max_body_size 上传文件大小限制

(5):gzip调优:

使用 gzip 压缩功能,可能为我们节约带宽,加快传输速度,有更好的体验,也为我们节约

成本,所以说这是一个重点。

Nginx 启用压缩功能需要你来 ngx_http_gzip_module 模块,apache 使用的是 mod_deflate

一般我们需要压缩的内容有:文本,js,html,css,对于图片,视频,flash 什么的不压缩,

同时也要注意,我们使用 gzip 的功能是需要消耗 CPU 的!

56797132bd5c62b0408ab9b34a1229d9.png

(6):expires 缓存调优:

**缓存,主要针对于图片,**css,js 等元素更改机会比较少的情况下使用,特别是图片,占用

带宽大,我们完全可以设置图片在浏览器本地缓存 365d, css, js, html 可以缓存个 10 来天,

这样用户第一次打开加载慢一点,第二次,就非常快了!缓存的时候,我们需要将需要缓存

的拓展名列出来, Expires 缓存配置在 server 字段里面

ea6bdf8b6d7b3cf18b8a44e0752125b1.png

70e2c6bbfb2fe12e430f7809ff934b11.png

注:log_not_found off;是否在 error_log 中记录不存在的错误。默认是。

总结:

expire 功能优点 (1)expires 可以降低网站购买的带宽,节约成本 (2)同时提升用户访问体验 (3)减轻服务的压力,节约服务器成本,是 web 服务非常重要的功能。

expire 功能

缺点: 被缓存的页面或数据更新了,用户看到的可能还是旧的内容,反而影响用户体验。 解决办法: 第一个缩短缓存时间,例如:1 天,但不彻底,除非更新频率大于 1 天;第二个对缓存的对象改名。

网站不希望被缓存的内容 1)网站流量统计工具 2)更新频繁的文件(google 的 logo)

(7):优化防盗链

防止别人直接从你网站引用图片等链接,消耗了你的资源和网络流量,那么我们的解决办法由几种: 1:水印,品牌宣传,你的带宽,服务器足够 2:防火墙,直接控制,前提是你知道 IP 来源 3:防盗链策略

下面的方法是直接给予 404 的错误提示

location ~* ^.+.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$ {

valid_referers none blocked www.benet.com benet.com;

if ($invalid_referer) {

#return 302 http://www.benet.com/img/nolink.jpg;

return 404;

break;

}

access_log off;

}

需要做的是:

用一台Linux服务器安装httpd用来验证:

如:(安装好后需要编辑一个链接网页)

[root@localhost ~]# vim /var/www/html/index.html

lianjie

在nginx服务器上:

根据配置文件添加一张图片;并在/usr/local/nginx/html下创建一个img目录添加图片;

55836db2a8939319899d9e79148e8ba1.png

54bd5482b5968e648a0c26e183dc99e5.png

c5aa20e2d76f64230fcf1f0e5a83e015.png

b3a92a7a0390a591bf8d81098555034b.png

4763d77b4fcd5a0c9000980671003c0b.png

dc887ff69ceacc0123c13a527049c0de.png

从上图可以看到现在nginx服务器被防盗链了。

0f2e9c948628503f6db03cd257b1ba6e.png

开启防盗链功能;

67f73e1ff78684ede7c5f688edd5d338.png

33d063b858af1ae6959fc1f38a8b4008.png

从上图可以看到防盗链设置生效了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值