未来往事
放下浅薄和无知,靠的不是批判他人,而是自身的壮大和重建。 [2017年 第50周/共52周]

Nginx配置文件参数详细说明

Nginx配置文件参考配置指南,Nginx配置文件参数说明
    #运行用户
    user www-data;  
    #启动进程,通常设置成和cpu的数量相等
    worker_processes  1;

    #全局错误日志及PID文件
    error_log  /var/log/nginx/error.log;
    pid        /var/run/nginx.pid;

    #工作模式及连接数上限
    events {
 
......
+阅读全文

php-fpm配置文件重要参数详解 配置参考指南

php-fpm.conf配置文件重要参数说明注释,希望对您有所帮助。
[global]
pid = /usr/local/php/var/run/php-fpm.pid
#pid设定,默认在安装目录中的var/run/php-fpm.pid,建议开启

error_log = /usr/local/php/var/log/php-fpm.log
#错误日志,默认在安装目录中的var/log/php-fpm.log

log_level = notice
#错误级别. 可用级别为: alert(必须立即处理), error(错误情况), warning(警告情况), notice(一般重要信息), debug(调试信息). 默认: notice.
  
emergency_restart_threshold = 60
emergency_restart_interval = 60s
......
+阅读全文

Nginx upstream模块

Nginx upstream模块使用及介绍:

......
+阅读全文

Nginx反向代理安装配置 upstream模块使用

安装配置Nginx反向代理,Nginx在upstream服务器的反向代理配置,upstream模块介绍,本文基于Debian6 & Debian7  Nginx 1.8编写。

Nginx 、反向代理服务介绍

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器。

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器......
+阅读全文

Debian Install Nginx Error: Depends libssl0.9.8 (>= 0.9.8m-1) but it is not installable

今天在Debian系统上使用apt-get install nginx-full方式安装nginx时遇到错误:Depends libssl0.9.8 (>= 0.9.8m-1) but it is not installable,错误代码如下:
root@(none):/opt# apt-get install nginx-full
Reading package lists... Done
Building dependency tree      
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information m
......
+阅读全文

Nginx Google反向代理扩展ngx_http_google_filter_module

Nginx Google反向代理扩展模块ngx_http_google_filter_module

ngx_http_google_filter_module扩展模块介绍

ngx_http_google_filter_module是一个过滤器模块,能够让谷歌镜像更便捷的部署。内建了正则表达式、URI locations和其他复杂的配置。原生nginx模块确保了更加高效地处理cookies, gstatic scoures和重定向。

轻松部署

1、依赖库
pcre 正则
ngx_http_proxy_module 反向代理
ngx_http_substitutions_filter_module 多重替换

下载substitutions扩展:
https://github.com/yaoweibin/ngx_http_substitutions_filter_module

2、依赖库安装过程(略)

3、Nginx重新编译安装
#cd /opt/lnmp1.2-full/src/nginx-1.8.0/

#./configure --user=www --group=www --prefix=/usr/local/nginx \
--with-http_stub_status_module --with-http_ssl_module --with-http_spdy_module \
--with-http_gzip_static_module --with-ipv6 --with-http_sub_module \
--add-module=/opt/ngx_http_google_filter_module \
--add-module=/opt/ngx_http_substitutions_filter_module-master

#make && make install

#cp -rf objs/nginx /usr/sbin/nginx  (覆盖二进制文件)

#service nginx restart
PS:#nginx -V查看版本号及上一次编辑安装的参数

4、基本配置
http配置方式
+阅读全文

Nginx拒绝默认主机IP访问

......
+阅读全文

CI框架去index.php Nginx rewrite规则

CodeIgniter去除index.php Nginx规则范例:
server
  {
    listen       80;
    server_name  ci.fity.cn;
    index index.html index.htm index.php;
    root  /htdoc/web/citest;
  
    location / {
        try_files $uri $uri $uri/ /index.php?s=$uri&$args;
        index &nb
......
+阅读全文

Nginx启用Gzip压缩模块

Nginx的gzip模块是内置的,在http中添加如下配置
gzip on;
gzip_min_length  5k;
gzip_buffers     4 16k;
gzip_http_version 1.0;
gzip_comp_level 3;
gzip_types       text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;

注  释:
gzip on|off
# 默认值: gzip off
# 开启或者关闭gzip模块

gzip_static on|off
# nginx对于静态文件的处理模块
# 该模块可以读取预先压缩的gz文件,这样可以减少每次请求进行gzip压缩的CPU资源消耗。该模块启用后,nginx首先检查是否存在请求静态文件的gz结尾的文件,如果有则直接返回该gz文件内容。为了要兼容不支持gzip的浏览器,启用gzip_static模块就必须同时保留原始静态文件和gz文件。这样的话,在有大量静态文件的情况下,将会大大增加磁盘空间。我们可以利用nginx的反向代理功能实现只保留gz文件。
# 可以google"nginx gzip_static"了解更多

gzip_comp_level 4
# 默认值:1(建议选择为4)
# gzip压缩比/压缩级别,压缩级别 1-9,级别越高压缩率越大,当然压缩时间也就越长(传输快但比较消耗cpu)。

gzip_buffers 4 16k
# 默认值: gzip_buffers 4 4k/8k
# 设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。 例如 4 4k 代表以4k为单位,按照原始数据大小以4k为单位的4倍申请内存。 4 8k 代表以8k为单位,按照原始数据大小以8k为单位的4倍申请内存。
# 如果没有设置,默认值是申请跟原始数据相同大小的内存空间去存储gzip压缩结果。

gzip_types mime-type [mime-type ...]
# 默认值: gzip_types text/html (默认不对js/css文件进行压缩)
# 压缩类型,匹配MIME类型进行压缩
# 不能用通配符 text/*
# (无论是否指定)text/html默认已经压缩
# 设置哪压缩种文本文件可参考 conf/mime.types
+阅读全文

Nginx配置支持TP PATHINFO URL_MODEL=1模式

配置Nginx支持ThinkPHP PATHINFO URL_MODEL=1模式

Nginx默认是不支持PATHINFO的,也就是说不支持ThinkPHP设置URL_MODEL=1的情况,这时候简单的方法,让Nginx迅速搭建TP的方法是,设置URL_MODEL=3,即兼容模式。但是要让Nginx支持ThinkPHP PATHINFO需要做如下配置:

1、设置ThinkPHP URL模式 URL_MODEL=1;
2、修改Nginx配置文件
location / {
   if (!-e $request_filename) {
   rewrite  ^(.*)$  /index.php?s=$1  last;
   break;
  }
}

......
+阅读全文

Nginx 泛解析

Nginx二级域名泛解析到子目录
Nginx多目录多虚拟主机情况泛解析


绑一堆域名实在太麻烦,假设需求场景如下:
二级/三级域名      对应web程序目录
*.household114.com       /phpweb/household114/
abc1.household114.com   /phpweb/household114/abc1.household114.com
abc2.household114.com   /phpweb/household114/abc2.household114.com
abc3.household114.com   /phpweb/household114/abc3.household114.com
……

Nginx配置如下:
server
        {
     &nbs
......
+阅读全文

Awstats+Nginx按年/月/日归档日志数据分析结果

最后更新时间:2013-06-16
  • 2013-05-21 首次整理成文档
  • 2013-06-17 发布到博客


一、Awstats安装配置
详细安装步骤这里不再赘述,如有需要请参考博客另一篇文章《awstats+jawstats构建日志自动分析系统》
1、安装
[root@iredmail ~]# cd /opt
[root@iredmail opt]# wget http://sourceforge.net/projects/awstats/files/AWStats/7.1.1/awstats-7.1.1.tar.gz
[root@iredmail opt]# tar -zxf awstats-7.1.1.tar.gz
[root@iredmail opt]# mv awstats-7.1.1 /usr/local/awstats
[root@iredmail opt]# chown -R root:root /usr/local/awstats
[root@iredmail opt]# chmod +x /usr/local/awstats/tools/*.pl
[root@iredmail opt]# chmod +x /usr/local/awstats/wwwroot/cgi-bin/*.pl
[root@iredmail opt]# cd /usr/local/awstats/tools
[root@iredmail tools]# ./awstats_configure.pl
1) 输入 none 然后回车
2) 输入 y 确认创建配置文件
3) 输入配置文件名称,一般输入域名,这里是以slog.fity.cn为案例
4) 配置文件使用默认路径 /etc/awstats
5) 按回车继续
6) 按回车完成配置文件的创建

2、修改awstats配置文件
[root@iredmail tools]# vi /etc/awstats/awstats.slog.fity.cn.conf  #如果有多个站点需要统计,请配置多个配置文件
LogFile="/htdoc/logs/2013/05/access_20130526.log"//指定log文件的存储位置
如果你希望每天能定时生成昨天的报表,可以:
LogFile="/htdoc/logs/%YYYY-24/%MM-24%/access_%YYYY-24%MM-24%DD-24.log"
注:根据你的日志路径和对应的日志文件名进行修改。对应Nginx日志切割程序所生成的目录存放结构保存的nginx日志文件。要注意Awstats的年月日格式的跟Nginx的写法有所不同,其中%YYYY-24/%MM-24/%DD-24表示年月日都减去24小时,也就是昨天的日志目录。

3、生成Awstats统计结果静态页面
[root@iredmail awstats]# mkdir -p /htdoc/awstats/html  #创建存放结果的目录
/usr/local/awstats/tools/awstats_buildstaticpages.pl -update  -config=slog.fity.cn -lang=cn -dir=/htdoc/awstats/html -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl
说明:    
/usr/local/awstats/tools/awstats_buildstaticpages.pl Awstats 静态页面生成工具
-update -config=slog.fity.cn 更新配置项,指定配置文件
-lang=cn 语言为中文
-dir=  指定静态页面的存储位置
-awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl Awstats 日志更新程序路径


二、Nginx配置及URL地址简化
1、配置Nginx
从Awstats提供的工具包中我们看到Awstats已经提供了在Nginx环境Awstats的安装配置,Nginx主机范例文件:
[root@iredmail awstats]#ls /usr/local/awstats/tools/nginx/
awstats-fcgi.php  awstats-nginx.conf  README.txt

这里我们先把awstats-fcgi.php复制一份到/usr/local/awstats/wwwroot/cgi-bin/fcgi.php
[root@iredmail awstats]# cd /usr/local/awstats/tools/nginx/
[root@iredmail nginx]# cp -a awstats-fcgi.php /usr/local/awstats/wwwroot/cgi-bin/fcgi.php

然后创建Nginx虚拟主机配置文件(可以参考Awstats提供的示例文件awstats-nginx.conf)
这里未来往事给出一个本次测试环境下Nginx的vhost完整配置:
server {
        listen 80;
        server_name slog.fity.cn;
        #access_log /var/log/nginx/localhost.access_log main;
        #error_log /var/log/nginx/localhost.error_log info;
        root /htdoc/awstats/html;
        index index.html;

        # Restrict access
        #auth_basic "Restricted";
        #auth_basic_user_file /etc/awstats/htpasswd;


        location ~ ^/cgi-bin/.*.(cgi|pl|py|rb) {
        gzip off;
        include         fastcgi_params;
        fastcgi_pass    127.0.0.1:9000;   #注意配置fastcgi_pass为你的php-fpm server.
        fastcgi_index   cgi-bin.php;
        fastcgi_param   SCRIPT_FILENAME /usr/local/awstats/wwwroot/cgi-bin/fcgi.php;  #注意文件路径
        fastcgi_param   SCRIPT_NAME        /cgi-bin/fcgi.php;
        fastcgi_param   X_SCRIPT_FILENAME /usr/local/awstats/wwwroot$fastcgi_script_name;  #注意文件路径
        fastcgi_param   X_SCRIPT_NAME $fastcgi_script_name;
        fastcgi_param   REMOTE_USER        $remote_user;
        }


        # Static awstats files: HTML files stored in DOCUMENT_ROOT/awstats/
        location /classes/ {
                alias /usr/local/awstats/wwwroot/classes/;
        }

        location /css/ {
                alias /usr/local/awstats/wwwroot/css/;
        }

        location /js/ {
                alias /usr/local/awstats/wwwroot/js/;
        }
        location /icon/ {
          alias /usr/local/awstats/wwwroot/icon/;
      }

}

2、常见错误:
页面错误信息:File not found.
检查nginx调用的文件是否有读取权限,例如/usr/local/awstats/wwwroot/下的相关文件Nginx是否有权限读取。未来往事遇到该故障是由于Nginx没有读取/usr/local/awstats/wwwroot/cgi-bin/fcgi.php文件的权限。

页面错误信息:Page not found.
检查Nginx配置文件中是否有参数错误。
备注:为了避免以上两处错误,未来往事建议你把该目录下/usr/local/awstats/wwwroot/使用到的文件复制一份到你Nginx中配置的主机目录中,然后适当的修改下Nginx配置文件中的路径地址即可。

3、状态测试
至此,我们便可以通过如下url方式访问日志统计页面了:
http://slog.fity.cn/cgi-bin/awstats.pl?config=slog.fity.cn
如图:

点击在新窗口中浏览此图片


4、简化URL地址
+阅读全文

Bo-blog IIS Nginx Rewrite伪静态规则

适用于:bo-blog2.X以上版本  Windows IIS站点主机和Nginx主机

IIS ISAPI_Rewrite:
[ISAPI_Rewrite]

# 3600 = 1 hour
CacheClockRate 3600

RepeatLimit 32

# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
#Bo-Blog 2.1.1 Release ISAPI_Rewrite http://fity.cn
RewriteRule ^(.*)/post/([0-9]+)/?([0-9]+)?/?([0-9]+)?/?$ $1/read\.php\?entryid=$2&page=$3&part=$4
RewriteRule ^(.*)/page/([0-9]+)/([0-9]+)/?$ $1/index\.php\?mode=$2&page=$3
RewriteRule ^(.*)/starred/([0-9]+)/?([0-9]+)?/?$ $1/star.php\?mode=$2&page=$3
RewriteRule ^(.*)/category/([^/]+)/?([0-9]+)?/?([0-9]+)?/?$ $1/index\.php\?go=category_$2&mode=$3&page=$4
RewriteRule ^(.*)/archiver/([0-9]+)/([0-9]+)/?([0-9]+)?/?([0-9]+)?/?$ $1/index\.php\?go=archive&cm=$2&cy=$3&mode=$4&page=$5
RewriteRule ^(.*)/date/([0-9]+)/([0-9]+)/([0-9]+)/?([0-9]+)?/?([0-9]+)?/?$ $1/index\.php\?go=showday_$2-$3-$4&mode=$5&page=$6
RewriteRule ^(.*)/user/([0-9]+)/?$ $1/view\.php\?go=user_$2
RewriteRule ^(.*)/tags/([^/]+)/?([0-9]+)?/?([0-9]+)?/?$ $1/tag\.php\?tag=$2&mode=$3&page=$4
RewriteRule ^(.*)/component/id/([0-9]+)/?$ $1/page\.php\?pageid=$2
RewriteRule ^(.*)/component/([^/]+)/?$ $1/page\.php\?pagealias=$2

#Customized URL
#RewriteRule ^(.*)/([^\/]*)\.html$ $1/$2/ [I]
RewriteRule ^(.*)/([^/|.]+)/?([0-9]+)?/?([0-9]+)?/?$ $1/read.php\?blogalias=$2&page=$3&part=$4 [I]

#fity.cn伪RSS XML订阅页面
RewriteRule ^(.*)/rss.xml$ $1/feed\.php
RewriteRule ^(.*)/sitemap.xml$ $1/sitemap\.php


Nginx Rewrite:也是本站当前在用的
+阅读全文

Apache Rewrite规则转Nginx Rewrite规则

不知道怎么把Apache Rewrite 规则转换成Nginx Rewrite配置的童鞋可以通过一个自动化的linux命令行工具apache2nginx进行Rewrite规则转换。

使用apache2nginx能将apache的配置文件转换成相应的nginx的配置文件。源代码在github上:
https://github.com/nhnc-nginx/apache2nginx

使用方法:
apache2nginx -f /etc/httpd/conf/httpd.conf  将生成 nginx.conf


另外还可以在线转换:
Apache转换到Nginx Rewrite:
http://www.anilcetin.com/convert-apache-htaccess-to-nginx/

Apache、Lighttpd、IIS转换到Nginx Rewrite:
http://www.onexin.net/rewr......
+阅读全文

Nginx Http 500错误解决

今天朋友租用的VPS Web服务出现了问题,访问网站报Nginx Http 500错误,但是php info测试页面正常,相关详细描述信息如下:
操作系统:Debian
Web服务:Nginx+PHP(Fast-cgi)+MySQL

后来查看了相关日志也检查了相关的配置没发现什么问题,就在该站点下放入了一个php info测试页面,发现访问正常。但是一访问网站程序就报Http 500错误,这里开始是不是程序本身的问题了,于是把php的错误提示功能打开后发现页面不再是500错误了,然后再按提示的错误信息解决了问题。

......
+阅读全文