nginx优化

动静分离
动态资源 php java .php .js
静态资源 图片、视频、音乐等

vi /usr/local/nginx/conf/nginx.conf
location ~ .php$ {
proxy_pass http://192.168.80.101;
}

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {               
 root html; 
     expires 7200;
    }

[root@www html]# nginx -t
[root@www ~]# cd /usr/local/nginx/html/
[root@www html]# ls
把图片等静态资源放到nginx的网页根目录中。
[root@www html]# service nginx restart

在LAMP服务器上:IP地址为192.168.80.101
[root@www ~]# cd /usr/local/httpd/htdocs/
[root@www htdocs]# vi index.php

service httpd start

2、配置版本号隐藏---------

curl -I 192.168.80.194

vi /etc/nginx.conf

server_tokens off; //在http { 下新增

vi /usr/local/php/lib/php.ini

expose_php = Off //修改此行

----第二种方法----
vi /opt/nginx-…/src/core/nginx.h //源码目录下修改,然后重新编译安装

#define NGINX_VERSION “10.10.10”
#define NGINX_VER “IIS/” NGINX_VERSION

3、网页缓存-------------
在配置文件的 location 段中加入

expires 1d; //默认单位是秒

server {}某个网站
http {}服务器
location{}目录

4、配置日志分割----------------
[root@www ~]# vi fenge.sh
#!/bin/bash
#filename: fenge.sh
D=$(date -d “-1 day” “+%Y%m%d”) //定义日期变量,昨天日志
LOGS_PATH="/var/log/nginx" //备份日志
PID_PATH="/usr/local/nginx/logs/nginx.pid" //指定pid文件位置
[ -d $LOGS_PATH ] || mkdir -p $LOGS_PATH //创建日志文件目录
mv /usr/local/nginx/logs/access.log L O G S P A T H / a a . c o m − a c c e s s . l o g − {LOGS_PATH}/aa.com-access.log- LOGSPATH/aa.comaccess.logD //备份前一天日志
kill -USR1 $(cat $PID_PATH) //重建日志文件
find $LOGS_PATH -mtime +30 | xargs rm -rf //删除30天之前的日志文件

crontab -e

    • */1 * * /root/fengge.sh

5、设置连接保持的超时时间-------------
vi /etc/nginx.conf

keepalive_timeout 65 180; //以后者为准,可以在http\server\location设置
client_header_timeout 80; //等待客户端发送请求头的超时时间 超时会发送408错误
client_body_timeout 80; //设置客户端发送请求体超时时间

6、优化进程数—

ps aux | grep nginx
cat /proc/cpuinfo | grep “processor”

vi /etc/nginx.conf

worker_processes 4 //设置为CPU的核心数量,高并发下设置为2倍
worker_cpu_affinity 0001 0010 0100 1000; //将服务进程分配到更多的CPU上
ps aux | grep nginx

7、配置网页压缩-------
vi /etc/nginx.conf

gzip on;//接着下面写
gzip_buffers 4 64k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_min_length 1k;
gzip_vary on;
gzip_types text/pain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss;

truncate -s 10k /usr/local/nginx/html/index.html //修改文件的大小
truncate -s 10k /usr/local/nginx/html/test.css

curl -I -H “Accept-Encoding: gzip, deflate” 192.168.80.194/ // 测试是否开启压缩 使用图形抓包也可以测试。

8、配置防盗链-----------------

搭建合法服务器,然后搭建非法服务器,在合法服务器上配置防盗参数,测试。

I AM OK!

Test Page!

-----------以上是在合法服务器上配置的------ I AM Hei

Hei..Hei!

------注意:在实验环境中要使盗链服务器能够解析合法服务器的域名,测试客户端也要能解析合法服务器的域名----

vi /etc/nginx.conf //在location / 下面,error page上面新增

location ~* .(jpg|gif|swf)$ {
valid_referers none blocked *.aa.com aa.com;
if ($invalid_referer) {
rewrite ^/ http://192.168.80.182/error.jpg;
#return 403;
}
}

-----注意重定向的内容要可以被盗链主机访问到-------------

9、FPM模块优化---------

cd /usr/local/php/etc/php-fpm.d
vi www.conf

pm=dynamic
pm.max_children=50 //static模式下空闲进程数上限,大于下面的值
pm.start_servers = 20 //动态方式下默认开启的进程数,在最小和最大之间
pm.min_spare_servers = 15 //动态方式下最少空闲进程数
pm.max_spare_servers = 35 //动态方式下最大空闲进程数

ps aux | grep -c “php-fpm”

你可能感兴趣的:(nginx优化)