Nginx基本配置与优化

来源:互联网 发布:留学低龄化数据 编辑:程序博客网 时间:2024/04/30 11:56

Nginx的配置文件默认在nginx程序安装目录(默认安装路径为'/usr/local/nginx/conf')的conf目录下,主配置文件为nginx.conf.

nginx.conf文件中代码解释:

#使用用户和用户组user wwwwww;#指定工作衍生进程数(一般等于cpu总核数或总核数的两倍)work_processes 8;#指定错误日志存放路径(默认路径:'/usr/local/nginx/logs/error.log'),可选择级别【debug | info | notice | warn | error | crit】error_log/usr/local/nginx/logs/error.logcrit;#指定pid路径(默认为:'/usr/local/nginx/logs/nginx.pid')pid/usr/local/nginx/logs/nginx.pid;#指定文件描述符数量worker_rlimit_nofile51200;events{#使用网络I/O模型,linux系统推荐epoll模型,FreeBSD系统推荐使用kqueue模型usrepoll;#允许连接数worker_connections51200;}http{.........server{......}server{.......}..........}一个nginx.conf配置文件大体是这种结构。nginx中虚拟主机的配置。一个虚拟主机其实就是一个server;http{log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                      '$status $body_bytes_sent "$http_referer" '                      '"$http_user_agent" "$http_x_forwarded_for"';#第一个虚拟主机server{#监听端口listen80;#主机名称server_namewww.test1.com;#访问日志路径access_loglogs/access1.logmain;location /{#默认首页文件,默认从左到右,如果找不到index.html就找index.htm当做首页indexindex.html index.htm;#项目存放根目录root/webserver/htdocs;}}#第二个虚拟主机server{#监听端口listen80;#主机名称server_namewww.test2.com;#访问日志路径access_loglogs/access2.logmain;location /{#默认首页文件,默认从左到右,如果找不到index.html就找index.htm当做首页indexindex.html index.htm;#项目存放根目录root/webserver/htdocs;}}}

日志文件分割:

mv /usr/local/nginx/logs/access.log/usr/local/nginx/logs/cp_access.log

kill -USR1  nginx 主进程号

通过mv将日志重命名,再发给kill -USR1信号给主进程生新生成一个日志文件;

可以把这段代码写到一个shell文件中,每天定时执行:

nginx_log.sh:

#!/bin/bash#这个脚本每天必须0:00时执行#Nginx日志文件存放路径logs_path='/logs/'mkdir -p ${logs_path}$(date -e "yesterday" + "%Y")/$(date -d "yesterday" + "%Y" + "%m")/mv   ${logs_path}access.log  ${logs_path}$(date -d "yesterday" + "%Y")/$(date -d "yesterday" + "%Y" + "%m")/access_$(date -d "yesterday" + "%Y%m%d").logkill -USR1`cat /usr/local/nginx/logs/nginx.pid`
执行:

crontab -e  00  00 * * *   ./nginx_log.sh


Nginx的压缩输出配置

gzip(GNU-ZIP)是一种压缩技术。经过gzip压缩后页面大小变为原来的30%甚至更小。

压缩指令有(写在http{}之间):

gzip on;gzip_min_length 1k;gzip_buffers 4 16k;gzip_http_version 1.1;gzip_comp_level 2;gzip_types text/plain application/x-javascript text/css application/xml;gzip_vary on;

nginx本地浏览器缓存设置

浏览器缓存可以通过expires指令来输出header来实现,expires语法如下:

语法   expires [time|epoch|max|off]

默认 expires off;

       作用域   http   server   location

       能过本指令可以控制http应答中的‘expires'和’cache_control'的header头信息起到控制页面缓存作用;

可以在time值中使用正数或负数。“Expires”头标的值将通过当前系统时间加上您设定的 time 值来获得。

epoch 指定“Expires”的值为 1 January, 1970, 00:00:01 GMT

max 指定“Expires”的值为 31 December 2037 23:59:59 GMT,“Cache-Control”的值为10年

-1 指定“Expires”的值为 服务器当前时间 -1s,即永远过期

“Cache-Control”头标的值由您指定的时间来决定:

负数:Cache-Control: no-cache

正数或零:Cache-Control: max-age = #, # 为您指定时间的秒数。

"off" 表示不修改“Expires”和“Cache-Control”的值

demo:
控制图片等过期时间为30天,当然这个时间可以设置的更长。具体视情况而定

比如
location~ \.(gif|jpg|jpeg|png|bmp|ico)$ {
           expires 30d;
 }
控制匹配/resource/或者/mediatorModule/里所有的文件缓存设置到最长时间
比如
      
location ~ /(resource|mediatorModule)/ {
root    /opt/demo;
expires max;
}

0 0
原创粉丝点击