NGINX 配置404错误页面转向

2010年1月17日 路途志 3 条评论

 

什么是404页面

如果碰巧网站出了问题,或者用户试图访问一个并不存在的页面时,此时服务器会返回代码为404的错误信息,此时对应页面就是404页面。404页面的默认内容和具体的服务器有关。如果后台用的是NGINX服务器,那么404页面的内容则为:

404 Not Found


nginx/0.8.6

 

为什么要自定义404页面

在访问时遇到上面这样的404错误页面,我想99%(未经调查,估计数据)的用户会把页面关掉,用户就这样悄悄的流失了。如果此时能有一个漂亮的页面能够引导用户去他想去的地方必然可以留住用户。因此,每一个网站都应该自定义自己的404页面。

NGINX下如何自定义404页面

IIS和APACHE下自定义404页面的经验介绍文章已经非常多了,NGINX的目前还比较少,凑巧我的几台服务器都是NGINX的,为了解决自家的问题特地对此作了深入的研究。研究结果表明,NGINX下配置自定义的404页面是可行的,而且很简单,只需如下几步:

1.创建自己的404.html页面

2.更改nginx.conf在http定义区域加入:

fastcgi_intercept_errors on;

3.更改nginx.conf在server 区域加入:

error_page 404 = /404.html

4.测试nginx.conf正确性:

/opt/nginx/sbin/nginx –t

如果正确应该显示如下信息:

the configuration file /opt/nginx/conf/nginx.conf syntax is ok
configuration file /opt/nginx/conf/nginx.conf test is successful

5.重启nginx

  1. kill -HUP  `cat /opt/nginx/nginx.pid `

 

配置文件实例:

……

http
{
include       mime.types;
default_type  application/octet-stream;

charset  gb2312;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush     on;

keepalive_timeout 60;

tcp_nodelay on;

fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
fastcgi_intercept_errors on;

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

#limit_zone  crawler  $binary_remote_addr  10m;

  #65的配置信息
      server
{
   listen       80;
   server_name  www.65.la 65.la *.65.la;
   index index.html index.htm index.php;
   root  /opt/www/65;
   location ~ .*\.(php|php5)?$
   {     
     #fastcgi_pass  unix:/tmp/php-cgi.sock;
     fastcgi_pass  127.0.0.1:9000;
     fastcgi_index index.php;
     include fcgi.conf;
   }
   error_page  404 = /404.html;

#502 等错误可以用同样的方法来配置。
   error_page   500 502 503 504 = /50x.html;
   ocation = /50x.html {
            root   html;
        }
   log_format  65  ‘$remote_addr – $remote_user [$time_local] "$request" ‘
              ‘$status $body_bytes_sent "$http_referer" ‘
              ‘"$http_user_agent" $http_x_forwarded_for’;
   access_log  /opt/nginx/logs/65.log  65;
}

……

 

 

注意事项:

1.必须要添加:fastcgi_intercept_errors on; 如果这个选项没有设置,即使创建了404.html和配置了error_page也没有效果。

fastcgi_intercept_errors

语法: fastcgi_intercept_errors on|off

默认: fastcgi_intercept_errors off

添加位置: http, server, location

默认情况下,nginx不支持自定义404错误页面,只有这个指令被设置为on,nginx才支持将404错误重定向。这里需要注意的是,并不是说设置了fastcgi_intercept_errors on,nginx就会将404错误重定向。在nginx中404错误重定向生效的前提是设置了fastcgi_intercept_errors on,并且正确的设置了error_page这个选项(包括语法和对应的404页面)

2.不要出于省事或者提高首页权重的目的将首页指定为404错误页面,也不要用其它方法跳转到首页。

3.自定义的404页面必须大于512字节,否则可能会出现IE默认的404页面。例如,假设自定义了404.html,大小只有11个字节(内容为:404错误)。用如下两个不存在的地址去访问:

http://www.65.la/no 将会调用自定义的404.html

http://www.65.la/notfound:将会调用IE默认的404页面

20.la不能解析了,dns服务器故障了。

2010年1月17日 路途志 没有评论

20.la是在域名超市注册的,早上起来突然发现访问不了,DNS无法解析。

目前域名超市自己的网站也上不了了。希望不是他们自己的服务器给扛走了,如果连机房都被封了,那就

麻烦了。问题解决后要转到大的域名服务商那里去了。

 

在域名超市里注册域名价格比较公道,服务也还可以,唯一的一个缺点就是服务不及时,公司太小经不起

这风吹雨打的世道。

关于白名单计划最通俗的解释

2010年1月16日 路途志 没有评论

1.白名单是一项政策,不是技术。网上有人说工信部在全球范围内率先启用白名单技术云云,这是外行人的说法。 

2.我国政府一直以来是用黑名单制度来屏蔽我国人民不应该访问的网站,这样的防御措施可以称为被动防御措施。而白名单是主动防御措施,没被例如白名单的网站都是我国人民不应该访问的网站。 

3.境外的网站必须主动在工信部备案才会列入白名单。这个政策的最终目的是在互联网领域把地球给管理起来。在互联网领域率先实现全球统一。

4.白名单不仅仅对境外网站有效,对境内网站也是如此,只有备案通过的网站才会被列入白名单,否则IDC不允许提供接入服务。这个措施从根本上断绝了没备案网站存在的可能性。 

5.在其它领域如果你被列入黑名单可能意味着你的所做所为遭到正直勇敢的人民群众的唾弃,在互联网领域,如果你没被列入白名单,通常意味着你有坚定的价值观,并将其付诸实践了。

落伍投资在火狐、Chrome下左偏解决办法

2010年1月15日 路途志 2 条评论

概述:

落伍投资网站主体由DIV+CSS构建,开发时一直在IE下预览效果,在这过程中没发现有错位的情况。最近通过统计工具发现,使用火狐访问落伍投资的用户比较多,于是安装了火狐测试了一下。测试过程中发现,几乎所有的页面都存在<body><div class=”main”></div>区域左偏的问题。

解决方案:

在CSS文件中,Main的定义如下:

.Main{border-top:1px #c8d8f2 solid;border-bottom:1px #c8d8f2 solid; width:960px;
margin-top:20px;text-align:left;
}

改为:

.Main{border-top:1px #c8d8f2 solid;border-bottom:1px #c8d8f2 solid; width:960px;
margin-top:20px;text-align:left;margin: auto;
}

上传,刷新页面,现在在firefox和chrome下页面显示和在IE中显示效果完全一样了。

解决过程:

这个问题的分析思路很明确,因为顶部导航和Main区域分别是用<div class =”nav_top”>和<div class=”main”>定义的。但是顶部导航区域一切正常,不存在左偏的问题。接下来就分析在CSS文件中nav_top和main的区别。比较发现,nav_top的定义中多了一个关键的:margin: auto;

问题原因:

在FireFox、Chrome中如果 body 设置 了text-align, div 需要设置 margin: auto 才可以居中,这点和IE的解释是不一致的。在落伍投资的CSS文件中,body恰好定义为:

body {text-align:center;background:#ffffff;}

明修栈道,暗度陈仓

2010年1月13日 路途志 没有评论

2010.01.12,百度因为DNS解析问题,在全球范围内无法正常提供服务。关于此事,众说纷纭,对于背后黑手到底是谁一直没有官方确认。

更多的人认为是“伊朗网军”通过攻击DNS根服务器来间接的攻击了百度,并列出了两大的证据:

1.前不久twitter也遭到了类似的攻击,背后黑手是“伊朗网军”。

2.百度服务停止期间,一度被指向了具有“伊朗网军”标志的网站。

 

关于黑手是谁这个问题,我想最终也会不了了之,无论是民间还是官方都给不出一个合理的答案。

但是我相信,伊朗网军绝对不是背后黑手。不是因为伊朗人民有多善良,而是他们根本没有动机去做这件事。

出不了名,得不了利,运气不好的话还会惹上官司,这事你肯干吗?

唯一的解释是:能在这场混战中牟利的人干了这件搅混水的事,那么到底是谁呢?

请看提示:

    1. 2010.01.12,百度因为DNS解析问题,在全球范围内无法正常提供服务。导致当日百度股票表现欠佳。
    2. 2010.01.13   突然媒体爆出Google要撤出中国的言论,当日百度股票大涨。

 

攻击百度仅仅是战役的一部分而已,大家的眼光恰恰集中在这最微不足道的环节了。修栈道造势造的很到位,度陈仓过的非常巧妙,颇有润物细无声之妙。

Windows 2008无线网络支持

2010年1月6日 路途志 没有评论

今天安装了windows 2008 标准版,发现在windows 2003下运行正常的无线网卡不工作了。通过设备管理器发现,无线网卡的安装配置各项都是正确的,网卡也能被正确的识别,但是收发无线信号了。google一番,找到解决方案。

问题原因:

windows 2008 默认禁用了无线网卡的信号收发服务。所以尽管看起来,无线网卡安装、配置、启动都是正常的,但是依然无法无线上网。

解决方案:

  1. 进入 开始菜单。
  2. 点击 服务器管理器。
  3. 点击 功能菜单。
  4. 点击 添加功能。
  5. 选择 无线LAN 服务。
  6. 点击 下一步。
  7. 等待 安装完成。安装耗时比较长,不能理解的windows 2008。

总结:

windows 2008 对于个人用户来说,远没有windows xp好用,不建议安装使用。对于普通的计算机使用人员,windows 2008带来的不便远大于其带来的便利。

西行,乌鲁木齐

2009年7月26日 路途志 2 条评论

明天下午,我将在乌鲁木齐南湖广场附近出现。听乌鲁木齐本地的朋友说,这个以前休闲散步的好地方,最近禁止任何人进入。

这次过去,除了公事之外,不知道去哪里打发时间才能令人放心。常去的人民广场因为是12事件中心地带,肯定不能去了。

12事件将对乌鲁木齐的旅游和房地产行业将带来沉重的打击。事实是,乌鲁木齐的旅游业正在遭受灭顶之灾。

乌鲁木齐现在正该是游人如织的好时候,乌鲁木齐、吐鲁番、石河子、喀纳斯,此时正是瓜果飘香、美不胜收的季节。从5月份开始,上海飞往乌鲁

木齐的机票价格一路走高,甚至很多航班9月份的机票已经售完。但是12事件之后,上海飞往乌鲁木齐的机票价格一路走低,如今千元以内即可买到

一张经济舱的票。这在往年是很罕见的。记得7.2号的时候,当地的如家等经济型酒店统统满员,甚至银都、海大这样的高档酒店也没有选择中意房

间的余地。如今,在任何一个宾馆,你都可以任意挑选。

乌鲁木齐有个朋友之前一直抱怨房价过高,开发商脸色难看。相信不久之后他会高兴的发现开发商热情了,房价跌了。

12事件对乌鲁木齐的影响是深远的,尤其当乌市的互联网管制解除之后、当大量的民间报告流传出来之后、当大量血淋淋的图片横行互联网的时候乌

市将成为大家争相远离的城市。

PHPCMS 100个常见问题(二)

2009年7月24日 路途志 没有评论

Q12.将标题中指定的字符串删除:

UPDATE phpcms_content SET title=REPLACE(title, ‘落伍投资’, ”);

Q13.查询内容中包含指定字符串的文章:
select contentid, content from phpcms_c_news where content like ‘%文章来源:落伍投资 %’

Q14.将文章内容中指定的版权信息替换。

UPDATE phpcms_c_news SET content=REPLACE(content, ‘(文章来源:路遇交友网, ‘(文章来源:落伍投资 http://www.65.la’);

Q15.虽然文章已经被删除,但是在搜索结果中依然出现该文章,怎么办?
因为phpcms_search表中依然保存了该文章的关键字,所以搜索关键字时会有该文章出现,但是点击链接会出现404错误。

delete phpcms_search from phpcms_search where data like ‘%mj%’

Q16.查询指定栏目的对应的内容列
select * from phpcms_c_news where content like ‘%落伍投资%’ && contentid in (select contentid from phpcms_content where catid =37)

Q17.查询所有栏目编号

select distinct from phpcms_content;

Q18.删除指定字符串中间的内容

select  CONCAT(LEFT(content,INSTR(content,’删除开始位置’)),RIGHT(content,LENGTH(content)-INSTR(content,’删除结束位置’)))

路途志网站更新日志 2009年7月

2009年7月23日 路途志 2 条评论

7月23日

  1. Platinum SEO Pack 更新至 1.2.6版,这个版本5月份就出来了,一直没更新,因为新版本的功能和我无关。今天要更新其它的插件,顺手把这个也更新了。
  2. google-sitemap-generator 更新至 3.1.4,这个版本和我的老版本比起来有了可爱的变化。Microsoft的搜索,从Live search 指向bing了
  3. wp-pagenavi 更新至2.50,支持wordpress 2.8.2。
  4. Contact Form 7,更新至 2.0,号称Compatible up to: 2.9-rare,哈哈。我喜欢它的描述。

升级到UCHOME 2.0,邮件发送功能失效

2009年7月23日 路途志 没有评论

昨天路遇交友正式升级到UCHOME2.0。升级好后发现邮件邀请功能失效了,发送邮件后迟迟收不到。查看日志/uch/data/200907_smtp.php,有如下提示:

 

<?PHP exit;?>    2009-07-22 09:30:19        222.66.162.147    166    /do.php?ac=sendmail&rand=1248312618    (smtp.gmail.com:465) PASSWORD – 535-5.7.1 Username and Password not accepted. Learn more at…..

 

不知道为何升级会导致邮箱密码错误。

解决方案很简单:后台更新下用户名和密码,保存,更新缓存,邮件功能正常。


SEO Powered by Platinum SEO from Techblissonline