Nginx 服务器

阿里云 Centos 7.4 下Nginx的优化及部署LNMP

2018-07-09  本文已影响49人  OzanShareing

引言

Nginx的优化其实有很多,阿里系的Tengine其实就是优化过的nginx。

本文接着上文继续关注Nginx的优化


一、Nginx优化


1、Nginx连接超时时间

主要目的是保护服务器的资源,CPU,内存,控制的连接数,因为在建立连接也需要消耗资源的具体参数如下:

keepalive_timeout 60;
tcp_nodelay on;
client_header_buffer_size 4k;
open_file_cache max=102400 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 1;
client_header_timeout 15;
client_body_timeout 15;
reset_timedout_connection on;
send_timeout 15;
server_tokens off;
client_max_body_size 10m;

以上的配置都是在Nginx主配置中设置。

2、Fastcgi调优,参数如下:

fastcgi_connect_timeout     600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_buffer_size 64k;
fastcgi_buffers  4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
fastcgi_temp_path /usr/local/nginx1.10/nginx_tmp;
fastcgi_intercept_errors on;
fastcgi_cache_path /usr/local/nginx1.10/fastcgi_cache levels=1:2 keys_zone=cache_fastcgi:128m inactive=1d max_size=10g;

nginx的缓存功能有:proxy_cache / fastcgi_cache

3、Gzip调优

使用gzip压缩功能,可能为我们节约带宽,加快传输速度,有更好的体验,也为我们节约成本,所以说这是一个重点。

Nginx启用压缩功能需要你来ngx_http_gzip_module模块,apache使用的是mod_deflate
一般我们需要压缩的内容有:文本,js,html,css,对于图片,视频,flash什么的不压缩,同时也要注意,我们使用gzip的功能是需要消耗CPU的!具体参数如下:

gzip on;
gzip_min_length  2k;
gzip_buffers     4 32k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
gzip_vary on;
gzip_proxied any;

4、expires缓存调优

缓存,主要针对于图片,css,js等元素更改机会比较少的情况下使用,特别是图片,占用带宽大,我们完全可以设置图片在浏览器本地缓存365d,css,js,html可以缓存个10来天,这样用户第一次打开加载慢一点,第二次,就非常快了!缓存的时候,我们需要将需要缓存的拓展名列出来, Expires缓存配置在server字段里面。

location ~* \.(ico|jpe?g|gif|png|bmp|swf|flv)$ {
   expires 30d;
   #log_not_found off;
   access_log off;
}
 
location ~* \.(js|css)$ {
   expires 7d;
   log_not_found off;
   access_log off;
}   

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

总结!!!:

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

expire功能缺点:
被缓存的页面或数据更新了,用户看到的可能还是旧的内容,反而影响用户体验。
解决办法: 第一个缩短缓存时间,例如:1天,但不彻底,除非更新频率大于1天;
第二个对缓存的对象改名。
网站不希望被缓存的内容
(1)网站流量统计工具
(2)更新频繁的文件(google的logo)

5、防盗链

防止别人直接从你网站引用图片等链接,消耗了你的资源和网络流量,那么我们的解决办法由几种:
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;
 }

二、部署LNMP

1、mysql二进制安装步骤如下:

之前我写过一篇简文Navicat for Mysql 安装图解,可参考。

2、Nginx的安装步骤如下:

可参考上篇阿里云 Centos 7.4 下Nginx的安装及优化

3、安装PHP

1)解决依赖关系
上一篇下一篇

猜你喜欢

热点阅读