当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪nginx日志配置、nginx日志分割      在nginx中,日志的配置很简单,有各种好用的选项,拿来使用即可。 一,nginx日志管理 1,log_format指令用来设置日志的记录格式,语法如下: log_format name format (format ....)   具体日志格式如.........
    ▪linux下nginx配置fcgi的实例参考      本节分享下linux环境中配置nginx fcgi的方法。 首先,安装nginx。 1,下载fastcgi 开发包,编译安装   代码示例: #tar zvzf fcgi -current.tar.gz #cd fcgi -current #./configure #make #make install 2,下载spawn-fcgi .........
    ▪nginx rewrite(nginx url地址重写)的配置示例      在nginx中,Rewrite用来实现URL的重写,Nginx的Rewrite规则采用Pcre,perl兼容正则表达式的语法规则匹配,如果需要Nginx的Rewrite功能,在编译Nginx之前,需要编译安装PCRE库。 先来熟悉下,nginx中的if.........

[1]nginx日志配置、nginx日志分割
    来源: 互联网  发布时间: 2013-12-24

在nginx中,日志的配置很简单,有各种好用的选项,拿来使用即可。

一,nginx日志管理
1,log_format指令用来设置日志的记录格式,语法如下:
log_format name format (format ....)
  具体日志格式如下:
 

代码示例:
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
 '$status $body_bytes_sent "$http_referer" '
  '"$http_user_agent" "$http_x_forwarded_for"';

  $http_x_forwarded_for 和 $remote_user用于记录ip地址
  $remote_user 用来记录远程客户端用户名称
  $time_local  用来记录访问时间及地区
  $request 用于记录请求的URL与HTTP协议
  $status  用于记录请求的状态,例如状态为200,页面找不到时为404
  $body_bytes_sent 用于记录发送给客户端的文件主体内容大小
  $http_referer用于记录是从哪个页面链接访问过来的
  $http_user_agent 用于记录客户端浏览器的相关信息
 
2,开启日志打开缓存
为了提高包含变量的日志文件存放路径的性能,可以使用:
open_log_file_cache指令来设置,格式如下:
open_log_file_cache max=N [inactive=time][min_use=N][valid=time] |off 该指令默认是禁止的,等同于: open_log_file_cache off;
max:设置缓存中的最大文件描述数量
inactive:  设置一个时间,如果在设置的时间内没有使用此文件描述,则自动删除此描述
min_uses:   在参数inactive指定的时间范围内,如果日志文件超过使用次数,则该日志文件的描述计入缓存,默认为10秒钟
valid   :设置多长时间检查一次,看日志文件路径与文件名是否仍然存在,默认60秒。
例子:open_log_file_cache max=1000 inactive=20s min_uses=2 valid=1m  

二,Nginx 日志分割
 

代码示例:
#vim logs.sh
#!/bin/bash
#Nginx日志存放位置
logs_path="/usr/local/nginx/logs"
#将日志改名
mkdir -p $(logs_path)$(date -d "yesterday" +"%Y")/$(date -d "yesterday" + "%m")/
 mv $(logs_path)access.log $(logs_path)$(date -d "yesterday" +"%Y" )/$(date -d "yesterday" + "%m" )/access_$(date -d "yesterday" + "%Y%m%d").log
#重启Nginx服务
 service nginx reload
#创建计划任务
#crontab -l
01 01 * * * /bin/bash/logs.sh

您可能感兴趣的文章:
nginx 日志分割的小脚本
分享:Logrotate分割nginx日志的脚本
Nginx日志按天分割的方法分享(图文)
一个分割ngnix网站日志的Shell脚本
每天自动分割Nginx日志文件的Shell脚本
修改nginx访问日志的时间格式的方法
Nginx日志中过滤关键字的写法
nginx 日志分析实例


    
[2]linux下nginx配置fcgi的实例参考
    来源: 互联网  发布时间: 2013-12-24

本节分享下linux环境中配置nginx fcgi的方法。

首先,安装nginx。
1,下载fastcgi 开发包,编译安装
 

代码示例:
#tar zvzf fcgi -current.tar.gz
#cd fcgi -current
#./configure
#make
#make install

2,下载spawn-fcgi ,编译安装
 

代码示例:
#tar zxvf spawn-fcgi -1.6.0.tar.gz
#cd spawn-f cgi -1.6.0
#./conifgure
#make
#make install

3,编写测试的c fast cgi 代码,存为 hello.c
 

代码示例:
#include <fcgi_stdio.h>
int main( int argc, char *argv[] )
{
 while( FCGI_Accept() >= 0 ) {
 printf( "Content-Type: text/plain\n\n" );
   printf( "Hello FastCGI\n" );
 }
  return 0;
}

编译c源文件,运行时有可能会报找不到lib包,可以复制一份,或做一个软链接。
比如,64位的机器,这样复制:/usr/lib64。
32位的用:/usr/lib。
 

代码示例:
gcc -o hello hello.c -lfcgi

4. 修改nginx.conf配置文件,重新启动nginx
 

代码示例:
server {
   listen   80;
   server_name _;      
   location / {
          root   /home/user/www;
          index  index.html;
          fast cgi _pass 127.0.0.1:9000;
    }
}

5,启动hello 
 

代码示例:
 spawn-fcgi -a127.0.0.1 -p9000 -n ./hello

6,浏览nginx上的网站,会输出:Hello FastCG。


    
[3]nginx rewrite(nginx url地址重写)的配置示例
    来源: 互联网  发布时间: 2013-12-24

在nginx中,Rewrite用来实现URL的重写,Nginx的Rewrite规则采用Pcre,perl兼容正则表达式的语法规则匹配,如果需要Nginx的Rewrite功能,在编译Nginx之前,需要编译安装PCRE库。

先来熟悉下,nginx中的if指令。
规则语法:
  

代码示例:
if ($http_user_agent ~MSIE){
   rewrite ^(.*)$/msie/$1 break;
    }
    if (!-f$request_filename){
     rewrite ^/img/(.*)$/site/$host/images/$1 last;
     }

其次是 rewrite 语法规则:
变量名:
 

    变量名可以使用"="或"!="运算符
     ~  符号表示区分大小写字母匹配
     ~* 符号表示不区分大小写字母匹配
     !~ 和 !~ 与~  !~ 相反
     -f 和 !-f   用来判断文件是否存在
     -d 和 !-d   用来判断目录是否存在
     -e 和 !-e   用来判断文件或目录是否存在
     -x 和 !-x   用来判断文件是否可以执行
 

 也支持$1到$9位置参数

return指令
示例:,如果访问的URL以.sh .bash 结尾,返回状态码403
 

代码示例:
 location ~ .*\.(sh|bash)?$
  {
   return 403;
   } 

rewrite指令
 

 rewrite指令的最后一项参数为flag标记,支持的flag标记主要有以下几种:
 last :相当于Apache里德(L)标记,表示完成rewrite;
 break;本条规则匹配完成后,终止匹配,不再匹配后面的规则
 redirect:返回302临时重定向,浏览器地址会显示跳转后的URL地址
 permanent:返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
 last和break用来实现URL重写,浏览器地址栏URL地址不变

实例:将访问/b跳转到/bbs目录上去:
 

代码示例:
location /b   {
   autoindex  on;
  alias /usr/local/nginx/html/redhat; 
  rewrite ^/b/?$ /bbs permanent;
  }
 location /bbs {
    autoindex on;
 alias /usr/local/nginx/html/bbs;
 }

rewrite规则编写实例
1,将原来要访问/b的目录重写为/bbs
核心语句: rewrite ^/b/?$ /bbs permannet;
2,根据不同的浏览器将得到不同的结果。
 

代码示例:
if ($http_user_agent ~ Firefox) {
  rewrite ^(.*)$ /firefox/$1 break;
  }
 
  if ($http_user_agent ~ MSIE) {
    rewrite ^(.*)$ /msie/$1 break;
   }
 if ($http_user_agent ~ Chrome) {
 rewrite ^(.*)$ /chrome/$1 break;
 }

3,防止盗链:
 

代码示例:
 location ~*\.(gif|jpg|png|swf|flv)${
 valid_referers none blocked www.*.test.com;
 if ($invalid_referer)
  rewrite ^/(.*) http://www./error.html
   }

4,实现域名跳转:
 

代码示例:
server {
 listen  80;
 server_name  xxx.example.com;
 write ^(.*)$  http://zhang.example.com/$1 permanent;
 location / {
     root   html;
     index  index.html index.htm;
 }

您可能感兴趣的文章:

nginx rewrite(nginx url地址重写)的配置示例
nginx中一些常用的 URL 重写方法
nginx配置url重写及自定义404错误页面等
Nginx常用的 URL 重写方法
超详细的 NGINX URL重写实例讲解

    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3