Linux学习笔记---nginx深度优化及lnmp安装

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

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

1:>>>>先安装nginx服务器:
在这里插入图片描述
在这里插入图片描述
[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
在这里插入图片描述
相关选项说明:
–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

在这里插入图片描述
安装配置完成。
2----->:再安装php:

在这里插入图片描述

安装 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分钟)
在这里插入图片描述
在这里插入图片描述
[root@localhost etc]# /etc/init.d/php-fpm restart
在这里插入图片描述
再Linux主配置文件中更改:再编辑一个php文件并且能访问成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一:nginx 配置项优化
(1):优化cpu亲和力:( Nginx 运行工作进程个数,一般我们设置 CPU 的核心或者核心数 x2) 优化后性能提升处理速度会更快
在这里插入图片描述
在这里我们还可以看到在查看的时候,work 进程是 nginx 程序用户,但是 master 进程还是root, 其中, master 是监控进程,也叫主进程, work 是工作进程,部分还有 cache 相关进程。
可以直接理解为 master 是管理员,work 进程才是为用户提供服务的!

如果不了解 cpu 的核数,可以 top 命令之后按 1 也可以看出来,也可以查看/proc/cpuinfo 文件#grep ^processor /proc/cpuinfo | wc –l
cpu亲和力进入主配置文件修改:
在这里插入图片描述
在这里插入图片描述
Nginx 运行 CPU 亲和力:

在这里插入图片描述
在这里插入图片描述
Nginx 最多可以打开文件数:
这个指令是指当一个 nginx 进程打开的最多文件描述符数目,理论值应该是最多打开文件数;(ulimit -n)与 nginx 进程数相除,但是 nginx 分配请求并不是那么均匀,所以最好与 ulimit -n
的值保持一致。
注:
文件资源限制的配置可以在/etc/security/limits.conf 设置,针对 root/user 等各个用户或者*
代表所有用户来设置。

  •    soft     nofile     65535 
    
  •    hard   nofile      65535
    

用户重新登录生效(ulimit -n)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此优化已完成。
总结:优化cpu核心处理器可提升处理速度,优化文件数可提高用户最多打开的文件数。

(2):nginx事件处理模型优化:
**nginx 采用 epoll 事件模型,处理效率高
work_connections 是单个 worker 进程允许客户端最大连接数,**这个数值一般根据服务器性能和内存来制定
multi_accept 告诉 nginx 收到一个新连接通知后接受尽可能多的连接

在这里插入图片描述
(3)开启高效传输模式:
在这里插入图片描述
4:优化连接超时时间:
主要目的是保护服务器资源,CPU,内存,控制连接数,因为建立连接也是需要消耗资源的;

在这里插入图片描述
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 的!
在这里插入图片描述
(6):expires 缓存调优:
**缓存,主要针对于图片,**css,js 等元素更改机会比较少的情况下使用,特别是图片,占用
带宽大,我们完全可以设置图片在浏览器本地缓存 365d, css, js, html 可以缓存个 10 来天,
这样用户第一次打开加载慢一点,第二次,就非常快了!缓存的时候,我们需要将需要缓存
的拓展名列出来, Expires 缓存配置在 server 字段里面
在这里插入图片描述
在这里插入图片描述
注: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目录添加图片;
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从上图可以看到现在nginx服务器被防盗链了。
在这里插入图片描述
开启防盗链功能;
在这里插入图片描述
在这里插入图片描述
从上图可以看到防盗链设置生效了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值