当前位置: 代码迷 >> Web前端 >> Nginx虚拟机跟日志
  详细解决方案

Nginx虚拟机跟日志

热度:249   发布时间:2012-10-08 19:54:56.0
Nginx虚拟机和日志
====================
Nginx的虚拟主机配置
  什么是虚拟主机?
    虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成为一台台“虚拟”的主机,每台虚拟主机都可以是一个独立的网站,可以的域名.
 
  linux要用什么命令查看主机名?


  Nginx的简单例子:
   http
   {
       listen   80 default;              <--监听的端口
       server_name *;                    <-- IP 或主机名
       location /
       {
          index index.html;   
          root /data/web_data/;           <--存放访问文件目录地址
       }

   }

1)配置基于IP的虚拟主机
http
   {
       listen   IP:port;             
       server_name IP;                  
       location /
       {
          index index.html;   
          root /data/web_data/;           <--存放访问文件目录地址
       }

   }

2)配置基于域名的虚拟主机

http
   {
       listen   port;             
       server_name 域名;                  
       location /
       {
          index index.html;   
          root /data/web_data/;           <--存放访问文件目录地址
       }

   }

===========================================================
Nginx 的日志文件配置与切割

1)定义日志格式
语法:log_format name format [fromat ...]
Nginx的默认日志
   log_format combined '$remote_addr -$remote_user [$time_local]'
                       '"$request" $status $body_bytes_sent'
                       '"$http_referer" "$http_user_agent"';
   Nginx作为反向代理,浏览器与web服务器之间多一层。$remote_addr是代理Nginx服务器的IP。但是反向代理服务器在转发请求的Http信息中,可以增加X-Forwarded-For信息,用以记录原有的客户端IP地址和原来客户端请求的服务器地址。
    log_format mylogformat '$http_x_forwarded_for -$remote_user [$time_local]'
                       '"$request" $status $body_bytes_sent'
                       '"$http_referer" "$http_user_agent"';

说明
   $remote_addr,$http_x_forward_for记录IP地址
   $remote_user记录客户端用户名
   $time_local记录访问时间与地区
   $request记录url请求
   $status记录请求状态
   $body_bytes_sent记录发送给客户端的文件主体内容大小
   $http_referer记录从哪个页面链接访问过来的
   $http_user_agent记录客户端浏览器的相关信息

=====
   日志文件存放的路径
   access_log path [format [buffer=size|off]]
说明
   path -->日志目录
   format -->定义的日志名称,默认是combined
   buffer  -->日志缓存
   off   -->关闭日志

===
   Nginx日志文件的切割
   mv nginx_home/logs/access.log   目标地址/年月日.log
   kill -USR1 nginx主进程
   或 kill -USR1 `cat /usr/local/nginx_home/nginx.pid`

写一个shell脚本,脚本写一个定时切割日志
把这个脚本,启动linux时就启动


========================================
压缩
  服务器与浏览器要同时支持压缩特性,现在主流的浏览器都支持。

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

注意 :以后补上


=========================================
Nginx 的自动列目录配置
location /
{
    autoindex on;
    autoindex_exact_size [on|off]
    autoindex_localtime [on|off]
}

===============================
Nginx的浏览器本地缓存置
语法:
    expires [time | epoch | max | off(默认)]

作用域:
   http,server,location(常用)

例:

   location ~ .*\.(js|css)?$
   {
       expires 1h;        -->   小时:h   天:d
   }







































 






2)