zoukankan      html  css  js  c++  java
  • Nginx实现用浏览器可实时查看指定日志文件内容

    首先,我们要了解浏览器是如何处理内容的。在浏览器中显示的内容有 HTML、有 XML、有 GIF、还有 Flash ……那么,浏览器是如何区分它们,决定什么内容用什么形式来显示呢?答案是 MIME Type,也就是该资源的媒体类型。

    媒体类型通常是通过 HTTP 协议,由 Web 服务器告知浏览器的,更准确地说,是通过 Content-Type 来表示的,例如:
    Content-Type: text/HTML

    表示内容是 text/HTML 类型,也就是超文本文件。为什么是“text/HTML”而不是“HTML/text”或者别的什么?MIME Type 不是个人指定的,是经过 ietf 组织协商,以 RFC 的形式作为建议的标准发布在网上的,大多数的 Web 服务器和用户代理都会支持这个规范 (顺便说一句,Email 附件的类型也是通过 MIME Type 指定的)。
    通常只有一些在互联网上获得广泛应用的格式才会获得一个 MIME Type,如果是某个客户端自己定义的格式,一般只能以 application/x- 开头。

    首先修改配置文件:

      location /logs {
          alias /home/data/logs;  #日志文件目录路径
          autoindex on;
          autoindex_exact_size off;
          autoindex_localtime on; #默认为off,显示的文件时间为GMT时间。改为on后,显示的文件时间为文件的服务器时间
          add_header Cache-Control no-store; #让浏览器不保存临时文件
          allow 114.242.192.133; #出于安全考虑可以设置ip白名单,或者使用下面的密码访问策略
          deny all;
      }

    vim mime.type

    types {
     text/html html htm shtml;
     text/log log;  以log为扩展名的文件,如果目录下有其它类型的日志文件需要查看,可以进行增加,例如: text/log json;
     text/css css;
     text/xml xml;
     .............

    密码访问策略

    1、yum -y install httpd-tools
    2、htpasswd -c /usr/local/nginx/conf/loguser wjoyxt
    3、在以上修改的conf配置文件中增加两行:
       auth_basic "Restricted";
       auth_basic_user_file /usr/local/nginx/conf/loguser; #认证账号密码保存的文件

    最后重启nginx使之生效即可


    Nginx默认是不允许列出整个目录的。如需此功能,打开nginx.conf文件,在location server 或 http段中加入
    autoindex on;
    另外两个参数最好也加上去:

    autoindex_exact_size off;
    默认为on,显示出文件的确切大小,单位是bytes。
    改为off后,显示出文件的大概大小,单位是kB或者MB或者GB
    autoindex_localtime on;
    默认为off,显示的文件时间为GMT时间。
    改为on后,显示的文件时间为文件的服务器时间

    --------------------------------------------------------------------------------------------

    nginx错误码原因以及解决方案

    1、400 bad request错误的原因和解决办法 配置nginx.conf相关设置如下.

    client_header_buffer_size 16k;

    large_client_header_buffers 4 64k;

    根据具体情况调整,一般适当调整值就可以。

    2、Nginx 502 Bad Gateway错误

    proxy_next_upstream error timeout invalid_header http_500 http_503;

    或者尝试设置:

    large_client_header_buffers 4 32k;

    3、Nginx出现的413 Request Entity Too Large错误

    这个错误一般在上传文件的时候会出现,

    编辑Nginx主配置文件Nginx.conf,找到http{}段,添加

    client_max_body_size 10m; //设置多大根据自己的需求作调整.

    如果运行php的话这个大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,这样就不会因为提交数据大小不一致出现的错误。

    post_max_size = 10M

    upload_max_filesize = 2M

    4、解决504 Gateway Time-out(nginx)

    遇到这个问题是在升级discuz论坛的时候遇到的

    一般看来, 这种情况可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out

    现在的网站, 尤其某些论坛有大量的回复和很多内容的, 一个页面甚至有几百K。

    默认的fastcgi进程响应的缓冲区是8K, 我们可以设置大点

    在nginx.conf里, 加入: fastcgi_buffers 8 128k

    这表示设置fastcgi缓冲区为8×128k

    当然如果您在进行某一项即时的操作, 可能需要nginx的超时参数调大点,例如设置成60秒:send_timeout 60;

    只是调整了这两个参数, 结果就是没有再显示那个超时, 可以说效果不错, 但是也可能是由于其他的原因, 目前关于nginx的资料不是很多, 很多事情都需要长期的经验累计才有结果.

  • 相关阅读:
    比赛F-F Perpetuum Mobile
    HDU 1003(A
    C-C Radar Installation 解题报告
    Codeforces 18C C. Stripe
    HDU 4911 Inversion
    分蛋糕(C
    抄书(B
    深入了解Android蓝牙Bluetooth——《基础篇》
    2W 字详解 Redis 集群环境搭建实践
    漫画 | 阿姨,我不想努力了~
  • 原文地址:https://www.cnblogs.com/wjoyxt/p/3914300.html
Copyright © 2011-2022 走看看