Ubuntu 13.10远程桌面客户端简介

  过了个周末,周一突然发现给我服役近三年的T60P屏幕不亮了,仔细看了下,发现有信号,就是灯管不亮了。找了下资料,有几种可能的问题,第一:屏线坏了;第二:高压条坏了;第三:主板保险烧掉了。死马当活马医吧,按前两种可能的问题处理,屏线、高压条一起换掉,下午就淘宝订货了。

  由于工作电脑环境比较复杂,临时用其它电脑太耽误事。于是乎用了另外一台Ubuntu系统电脑远程管理来操作它。期间使用了四种远程客户端,各有所长,但都不太完美,下面简单记录下。

以下内容为引用 四种Ubuntu系统中的远程桌面客户端
Vinagre 远程桌面查看器

Vinagre 是一个集成到GNOME的远程桌面客户端。
Vinagre 的功能有:同时打开多个链接、把您的服务器收藏为书签、在GNOME钥匙圈里存储密码、浏览网络来寻找VNC服务器。
目前Vinagre支持VNC和SSH协议。
项目网址:https://projects.gnome.org/vinagre

Grdesktop 远程桌面客户端

Grdesktop 是远程桌面客户端(rdesktop)的GNOME前端。
它可以保存多个连接及其设置,还可以浏览网络上的主机以寻找可用的终端服务器。
项目网址:http://www.nongnu.org/grdesktop/

Remmina 远程桌面客户端

Remmina 是Ubuntu 13.10中默认的远程桌面客户端,也是这四款软件里面功能最强大的一个。支持RDP、VNC、NX、XDMCP和SSH协议。
项目网址:http://remmina.sourceforge.net/

KRDC 远程桌面客户端

KRDC 是KDE远程桌面客户端。支持RDP、VNC、RFB协议。这个包是KDE网络组件的一部分。
项目网址:http://www.kde.org

总结:个人认为 KRDC 最好用,其次是Remmina,再是Vinagre,最后是Grdesktop

  今天上午订购的屏线(原装T60P拆机保用25元)、高压条(T61拆机保用15元)到货了,另外还额外一起订了个键盘(拆机保用98成新65元),算邮费一起113元。中午吃饭时间七手八脚的装上了,大功告成!屏幕亮了,键盘新了,跟当初买的时候差不多少,我的小黑旧貌换新颜了。非常超值!

PS Tray Factory 3.2 隐藏状态栏和托盘图标的小工具

一直在用的小工具,之前用的旧版,退出程序后再重新打开就无法使用了。偶然发现有新版的,试用了下挺好用。

附件1: PS Tray Factory3.2.7z (633.21 K, 下载次数:154)

CSS控制IE浏览器中的圆角边框

.test {
    width:560px;
    height:400px;
    background-color: blue;
    padding:10px 8px 6px;
    border: 2px solid #C0C0C0;
    margin-bottom:10px;
    border-radius: 10px;
    behavior: url(ie-css3.htc);
}

附件1: ie-css3.htc (11.86 K, 下载次数:200)

CSS控制文本超出指定宽度后用省略号代替

一般的文字截断(适用于内联与块):

.text-overflow {
    display:block;/*内联对象需加*/
    width:31em;
    word-break:keep-all;/* 不换行 */
    white-space:nowrap;/* 不换行 */
    overflow:hidden;/* 内容超出宽度时隐藏超出部分的内容 */
    text-overflow:ellipsis;/* 当对象内文本溢出时显示省略标记(...) ;需与overflow:hidden;一起使用。*/
}

对于表格文字溢出的定义:
对于表格超出范围显示省略号

table{
    width:30em;
    table-layout:fixed;/* 只有定义了表格的布局算法为fixed,下面td的定义才能起作用。 */
}
td{
    width:100%;
    word-break:keep-all;/* 不换行 */
    white-space:nowrap;/* 不换行 */
    overflow:hidden;/* 内容超出宽度时隐藏超出部分的内容 */
    text-overflow:ellipsis;/* 当对象内文本溢出时显示省略标记(...) ;需与overflow:hidden;一起使用。*/
}

  需要你注意的是,这个CSS样式只对单行的文字的效,如果你想把它用在多行上,也只有第一行有作用的。 这个写法只有IE会有“...”,其它的浏览器文本超出指定宽度时会隐藏。

  以上问题可以解决:使用CSS如何控制文本换行?使用CSS如何控制文本不换行?使用CSS如何控制文本超出范围后显示省略号?使用CSS如何控制文本超出范围后隐藏?

转贴来的,仅做下记录。文章出处:http://blog.csdn.net/ynz1219/article/details/7413530

一段文本表单的CSS样式

从小米网站预定页面抄来的,FF下面效果挺炫的。

.txt {
    background: none repeat scroll 0 0 #FFFFFF;
    border: 1px solid #CCCCCC;
    color: #999999;
    float: left;
    font-size: 14px;
    height: 30px;
    line-height: 30px;
    padding: 0 5px;
    transition: all 0.5s ease-in 0s;
    width: 170px;
}
.txt:focus {
    border: 1px solid #666666;
    border-radius: 5px 5px 5px 5px;
    box-shadow: 1px 2px 3px #E1E1E1 inset;
    color: #000000;
    width: 205px;
}

用CSS代码自动缩放图片大小

下面代码按限制宽度来写的,高度不限,宽度超过180像素自动按比例缩放图片大小。

.pro_icon img {
     width: 180px; height: 130px;
     cursor:pointer;
     zoom:expression( function(elm) {
       if (elm.width>180) {
       var oldVW = elm.width; elm.width=180;
       elm.height = elm.height*(180 /oldVW);}
       elm.style.zoom = '1';
     }(this)); 
 }

  用CSS的好处就是绿色环保,不需要重新生成缩略图;坏处一个是兼容性不大好,再就是要完全载入整个图片后才能生效,图片如果比较大,下载期间可能会撑坏网页布局,可以配合控制外部容器大小来一起使用。

应用推荐 SportyPal PRO 运动伴侣专业版

  SportyPal PRO,直译为中文是运动伴侣专业版。它是一款不可多得的运动管理工具,可记录运动轨迹,显示即时速度、高度变化、平均速度等。

SportyPal PRO - screenshot thumbnail SportyPal PRO - screenshot thumbnail   SportyPal PRO - screenshot thumbnail

  所有运功模式包括:高尔夫球、飞行伞、越野滑雪、滑雪板、滑雪、健行、健走、跑步、单车、旱冰、开车、飞机、自由模式、游泳、帆船、冲浪、划船、骑马。下面简单介绍下它的主要功能。

1、可以通过无线上传至网络,记录并分享给自己的朋友。

大小: 40.56 K
尺寸: 500 x 164
浏览: 0 次
点击浏览全图

大小: 46.04 K
尺寸: 465 x 480
浏览: 0 次
点击浏览全图

2、记录轨坐标录搭配谷歌地图,可清晰的显示自己的运动路线。

大小: 118.51 K
尺寸: 500 x 452
浏览: 0 次
点击浏览全图

3、实时语音反馈,不过是英文的。我爬山时候用的它,英文语音提示时,旁边路人回头率老高了。

4、音乐功能。运动的时候少了音乐怎么能行?

5、心率监测功能。这里要配合心率监测设备和蓝牙一起使用。

官方网站:http://www.sportypal.com/
下载地址:https://play.google.com/store/apps/details?id=com.sportypalpro&hl=zh-CN

禁止关闭PPStream仍在后台运行PPSKernel和自动添加PPS Accelerator启动项

  在PPStream退出后,后台仍运行PPSKernel.exe进程(之前叫PPSAP.exe),不用想也知道是在偷偷上传资源。之前的旧版本直接删掉PPSAP.exe,或将这个文件改名即可;

大小: 830 bytes
尺寸: 200 x 39
浏览: 0 次
点击浏览全图

  新版本(V3.1.x)每次启动主程序后会再次验证此文件,发现文件不存在或被修改会报错,点确定后直接下载新版的安装程序并重新安装,还不能关闭和取消。说实话,这个有点流氓性质。

大小: 5.85 K
尺寸: 390 x 119
浏览: 0 次
点击浏览全图

大小: 3.68 K
尺寸: 440 x 140
浏览: 0 次
点击浏览全图

  在使用PPStream观看影片的时候,共享资源可以接受,毕竟它里面很多资源是免费的,得到一些就应该付出一些,但是退出主程序后PPSKernel进程仍然存在我不能接受。而且我发现手动删除启动项后,重启主程序会自动修复删除的启动项,程序设置里面还没的取消,这个就很流氓了。我认为除了杀毒软件,其它软件都不应该有这个功能。

  那我们就没办法了吗?答案当然是否定的。方法自然有,其实就是把退出程序手动结束进程和删除注册表写成批处理,绿色又环保。具体操作如下:

将下面代码保存为PPS.BAT文件

@echo off
cd "%CD%"
PPstream.exe
taskkill /im PPSProtect.exe /f /t >NUL 2>NUL
taskkill /im PPSKernel.exe /f /t >NUL 2>NUL
reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v "PPS Accelerator" /f >NUL 2>NUL
del C:\WINDOWS\Tasks\PPSProtect.job >NUL 2>NUL
for /f "delims=" %%i in ('REG.EXE QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /V "Startup"') do set StartupDir="%%i"
set StartupDir=%StartupDir:~20,-1%
del %StartupDir%\PPS.lnk >NUL 2>NUL
del %StartupDir%\PPSKernel.lnk >NUL 2>NUL

将下面代码保存为PPS.VBS文件

set ws=wscript.createobject("wscript.shell") 
ws.run "PPS.bat /start",0

  将PPS.BAT和PPS.VBS一起复制到PPStream的安装目录,然后将PPStream的启动快捷方式指向PPS.VBS,最后把这个快捷方式的图标重新修改为PPStream图标即可。下次退出PPStream后就会自动终止PPSKernel进程并删除PPS Accelerator启动项了。

  后续更新:最近发现PPS自动升级后,无论你之前怎么设置的,它都会自动重新加入到开始菜单启动项,并且多了个PPSProtect的计划任务,这个计划任务的工作就是在你每次打开程序的时候,自动运行PPSProtect.exe这个保护进程,并且这个进程在关闭PPS后也没有自动退出,所以我又更新了下批处理脚本文件。我感觉PPS和爱奇艺合体后变的越来越流氓了。最近更新发现启动菜单里的名字变了,变成 PPSKernel.lnk 了。

Nginx Rewrite规则相关指令

最近服务器上的apache有点不堪重负,考虑部署nginx,但原来系统采用了rewrite,所以找来下面文章参考。

Nginx Rewrite规则相关指令
Nginx Rewrite规则相关指令有if、rewrite、set、return、break等,其中rewrite是最关键的指令。一个简单的Nginx Rewrite规则语法如下:

rewrite ^/b/(.*)\.html /play.php?video=$1 break;

如果加上if语句,示例如下:

if (!-f $request_filename)

rewrite ^/img/(.*)$ /site/$host/images/$1 last;

Nginx与Apache的Rewrite规则实例对比

简单的Nginx和Apache 重写规则区别不大,基本上能够完全兼容。例如:

Apache Rewrite 规则:

RewriteRule ^/(mianshi|xianjing)/$ /zl/index.php?name=$1 [L]

RewriteRule ^/ceshi/$ /zl/ceshi.php [L]

RewriteRule ^/(mianshi)_([a-zA-Z]+)/$ /zl/index.php?name=$1_$2 [L]

RewriteRule ^/pingce([0-9]*)/$ /zl/pingce.php?id=$1 [L]

Nginx Rewrite 规则:

rewrite ^/(mianshi|xianjing)/$ /zl/index.php?name=$1 last;

rewrite ^/ceshi/$ /zl/ceshi.php last;

rewrite ^/(mianshi)_([a-zA-Z]+)/$ /zl/index.php?name=$1_$2 last;

rewrite ^/pingce([0-9]*)/$ /zl/pingce.php?id=$1 last;

由以上示例可以看出,Apache的Rewrite规则改为Nginx的Rewrite规则,其实很简单:Apache的RewriteRule指令换成Nginx的rewrite指令,Apache的[L]标记换成Nginx的last标记,中间的内容不变。

如果Apache的Rewrite规则改为Nginx的Rewrite规则后,使用nginx -t命令检查发现nginx.conf配置文件有语法错误,那么可以尝试给条件加上引号。例如一下的Nginx Rewrite规则会报语法错误:

rewrite ^/([0-9]{5}).html$ /x.jsp?id=$1 last;

加上引号就正确了:
rewrite “^/([0-9]{5}).html$” /x.jsp?id=$1 last;

Apache与Nginx的Rewrite规则在URL跳转时有细微的区别:

Apache Rewrite 规则:
RewriteRule ^/html/tagindex/([a-zA-Z]+)/.*$ /$1/ [R=301,L]

Nginx Rewrite 规则:
rewrite ^/html/tagindex/([a-zA-Z]+)/.*$ http://$host/$1/ permanent;

以上示例中,我们注意到,Nginx Rewrite 规则的置换串中增加了“http://$host”,这是在Nginx中要求的。

另外,Apache与Nginx的Rewrite规则在变量名称方面也有区别,例如:

Apache Rewrite 规则:
RewriteRule ^/user/login/$ /user/login.php?login=1&forward=http://%{HTTP_HOST} [L]

Nginx Rewrite 规则:
rewrite ^/user/login/$ /user/login.php?login=1&forward=http://$host   last;

Apache与Nginx Rewrite 规则的一些功能相同或类似的指令、标记对应关系:

Apache的RewriteCond指令对应Nginx的if指令;
Apache的RewriteRule指令对应Nginx的rewrite指令;
Apache的[R]标记对应Nginx的redirect标记;
Apache的[P]标记对应Nginx的last标记;
Apache的[R,L]标记对应Nginx的redirect标记;
Apache的[P,L]标记对应Nginx的last标记;
Apache的[PT,L]标记对应Nginx的last标记;

允许指定的域名访问本站,其他域名一律跳转到http://www.aaa.com

Apache Rewrite 规则:
RewriteCond %{HTTP_HOST}    ^(.*?)\.domain\.com$
RewriteCond %{HTTP_HOST}    !^qita\.domain\.com$
RewriteCond %{DOCUMENT_ROOT}/market/%1/index.htm -f
RewriteRule ^/wu/$ /market/%1/index.htm [L]

Nginx的if指令不支持嵌套,也不支持AND、OR等多条件匹配,相比于Apache的RewriteCond,显得麻烦一些,但是,我们可以通过下一页的Nginx配置写法来实现这个示例:

Nginx Rewrite 规则:
if ($host ~* ^(.*?)\.domain\.com$) set $var_wupin_city $1;
     set $var_wupin ‘1′;

if ($host ~* ^qita\.domain\.com$)

    set $var_wupin ‘0′;

 if (!-f $document_root/market/$var_wupin_city/index.htm)

     set $var_wupin ‘0′;

if ($var_wupin ~ ‘1′)

    rewrite ^/wu/$ /market/$var_wupin_city/index.htm last;
}

 

rewrite 的语法

 

语法: rewrite regex replacement flag

默认: none

作用域: server, location, if

This directive changes URI in accordance with the regular expression and the replacement string. Directives are carried out in order of appearance in the configuration file.

这个指令根据表达式来更改URI,或者修改字符串。指令根据配置文件中的顺序来执行。

Be aware that the rewrite regex only matches the relative path instead of the absolute URL. If you want to match the hostname, you should use an if condition, like so:

注意重写表达式只对相对路径有效。如果你想配对主机名,你应该使用if语句。

rewrite只是会改写路径部分的东东,不会改动用户的输入参数,因此这里的if规则里面,你无需关心用户在浏览器里输入的参数,rewrite后会自动添加的因此,我们只是加上了一个?号和后面我们想要的一个小小的参数 ***https=1就可以了。

nginx的rewrite规则参考:

  1. ~ 为区分大小写匹配
  2. ~* 为不区分大小写匹配
  3. !~和!~*分别为区分大小写不匹配及不区分大小写不匹
  1. -f和!-f用来判断是否存在文件
  2. -d和!-d用来判断是否存在目录
  3. -e和!-e用来判断是否存在文件或目录
  4. -x和!-x用来判断文件是否可执行
  1. last 相当于Apache里的[L]标记,表示完成rewrite,呵呵这应该是最常用的
  2. break 终止匹配, 不再匹配后面的规则
  3. redirect 返回302临时重定向 地址栏会显示跳转后的地址
  4. permanent 返回301永久重定向 地址栏会显示跳转后的地址
  1. $args
  2. $content_length
  3. $content_type
  4. $document_root
  5. $document_uri
  6. $host
  7. $http_user_agent
  8. $http_cookie
  9. $limit_rate
  10. $request_body_file
  11. $request_method
  12. $remote_addr
  13. $remote_port
  14. $remote_user
  15. $request_filename
  16. $request_uri
  17. $query_string
  18. $scheme
  19. $server_protocol
  20. $server_addr
  21. $server_name
  22. $server_port
  23. $uri

结合QeePHP的例子

  1. if (!-d $request_filename) {
  2. rewrite ^/([a-z-A-Z]+)/([a-z-A-Z]+)/?(.*)$ /index.php?namespace=user&controller=$1&action=$2&$3 last;
  3. rewrite ^/([a-z-A-Z]+)/?$ /index.php?namespace=user&controller=$1 last;
  4. break;

多目录转成参数
abc.domian.com/sort/2 => abc.domian.com/index.php?act=sort&name=abc&id=2

  1. if ($host ~* (.*)\.domain\.com) {
  2. set $sub_name $1;
  3. rewrite ^/sort\/(\d+)\/?$ /index.php?act=sort&cid=$sub_name&id=$1 last;
  4. }

目录对换
/123456/xxxx -> /xxxx?id=123456

  1. rewrite ^/(\d+)/(.+)/ /$2?id=$1 last;

例如下面设定nginx在用户使用ie的使用重定向到/nginx-ie目录下:

  1. if ($http_user_agent ~ MSIE) {
  2. rewrite ^(.*)$ /nginx-ie/$1 break;
  3. }

目录自动加“/”

  1. if (-d $request_filename){
  2. rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
  3. }

禁止htaccess

  1. location ~/\.ht {
  2. deny all;
  3. }

禁止多个目录

  1. location ~ ^/(cron|templates)/ {
  2. deny all;
  3. break;
  4. }

禁止以/data开头的文件
可以禁止/data/下多级目录下.log.txt等请求;

  1. location ~ ^/data {
  2. deny all;
  3. }

禁止单个目录
不能禁止.log.txt能请求

  1. location /searchword/cron/ {
  2. deny all;
  3. }

禁止单个文件

  1. location ~ /data/sql/data.sql {
  2. deny all;
  3. }

给favicon.ico和robots.txt设置过期时间;
这里为favicon.ico为99天,robots.txt为7天并不记录404错误日志

  1. location ~(favicon.ico) {
  2. log_not_found off;
  3. expires 99d;
  4. break;
  5. }
  6.  
  7. location ~(robots.txt) {
  8. log_not_found off;
  9. expires 7d;
  10. break;
  11. }

设定某个文件的过期时间;这里为600秒,并不记录访问日志

  1. location ^~ /html/scripts/loadhead_1.js {
  2. access_log   off;
  3. root /opt/lampp/htdocs/web;
  4. expires 600;
  5. break;
  6. }

文件反盗链并设置过期时间
这里的return 412 为自定义的http状态码,默认为403,方便找出正确的盗链的请求
“rewrite ^/ http://leech.divmy.com/leech.gif;”显示一张防盗链图片
“access_log off;”不记录访问日志,减轻压力
“expires 3d”所有文件3天的浏览器缓存

  1. location ~* ^.+\.(jpg|jpeg|gif|png|swf|rar|zip|css|js)$ {
  2. valid_referers none blocked *.c1gstudio.com *.c1gstudio.net localhost 208.97.167.194;
  3. if ($invalid_referer) {
  4. rewrite ^/ http://leech.divmy.com/leech.gif;
  5. return 412;
  6. break;
  7. }
  8. access_log   off;
  9. root /opt/lampp/htdocs/web;
  10. expires 3d;
  11. break;
  12. }

只充许固定ip访问网站,并加上密码

  1. root  /opt/htdocs/www;
  2. allow   208.97.167.194;
  3. allow   222.33.1.2;
  4. allow   231.152.49.4;
  5. deny    all;
  6. auth_basic “C1G_ADMIN”;
  7. auth_basic_user_file htpasswd;

将多级目录下的文件转成一个文件,增强seo效果
/job-123-456-789.html 指向/job/123/456/789.html

  1. rewrite ^/job-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /job/$1/$2/jobshow_$3.html last;

将根目录下某个文件夹指向2级目录
如/shanghaijob/ 指向 /area/shanghai/
如果你将last改成permanent,那么浏览器地址栏显是/location/shanghai/

  1. rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last;

上面例子有个问题是访问/shanghai 时将不会匹配

  1. rewrite ^/([0-9a-z]+)job$ /area/$1/ last;
  2. rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last;

这样/shanghai 也可以访问了,但页面中的相对链接无法使用,
如./list_1.html真实地址是/area/shanghia/list_1.html会变成/list_1.html,导至无法访问。

那我加上自动跳转也是不行咯
(-d $request_filename)它有个条件是必需为真实目录,而我的rewrite不是的,所以没有效果

  1. if (-d $request_filename){
  2. rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
  3. }

知道原因后就好办了,让我手动跳转吧

  1. rewrite ^/([0-9a-z]+)job$ /$1job/ permanent;
  2. rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last;

文件和目录不存在的时候重定向:

  1. if (!-e $request_filename) {
  2. proxy_pass http://127.0.0.1;
  3. }

域名跳转

  1. server
  2. {
  3. listen       80;
  4. server_name  jump.88dgw.com;
  5. index index.html index.htm index.php;
  6. root  /opt/lampp/htdocs/www;
  7. rewrite ^/ http://www.88dgw.com/;
  8. access_log  off;
  9. }

多域名转向

  1. server_name  www.7oom.com/  www.divmy.com/;
  2. index index.html index.htm index.php;
  3. root  /opt/lampp/htdocs;
  4. if ($host ~ “c1gstudio\.net”) {
  5. rewrite ^(.*) http://www.7oom.com$1/ permanent;
  6. }

三级域名跳转

  1. if ($http_host ~* “^(.*)\.i\.c1gstudio\.com$”) {
  2. rewrite ^(.*) http://top.88dgw.com$1/;
  3. break;
  4. }

域名镜向

  1. server
  2. {
  3. listen       80;
  4. server_name  mirror.c1gstudio.com;
  5. index index.html index.htm index.php;
  6. root  /opt/lampp/htdocs/www;
  7. rewrite ^/(.*) http://www.divmy.com/$1 last;
  8. access_log  off;
  9. }

某个子目录作镜向

  1. location ^~ /zhaopinhui {
  2. rewrite ^.+ http://zph.divmy.com/ last;
  3. break;
  4. }

discuz ucenter home (uchome) rewrite

  1. rewrite ^/(space|network)-(.+)\.html$ /$1.php?rewrite=$2 last;
  2. rewrite ^/(space|network)\.html$ /$1.php last;
  3. rewrite ^/([0-9]+)$ /space.php?uid=$1 last;

discuz 7 rewrite

  1. rewrite ^(.*)/archiver/((fid|tid)-[\w\-]+\.html)$ $1/archiver/index.php?$2 last;
  2. rewrite ^(.*)/forum-([0-9]+)-([0-9]+)\.html$ $1/forumdisplay.php?fid=$2&page=$3 last;
  3. rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?tid=$2&extra=page\%3D$4&page=$3 last;
  4. rewrite ^(.*)/profile-(username|uid)-(.+)\.html$ $1/viewpro.php?$2=$3 last;
  5. rewrite ^(.*)/space-(username|uid)-(.+)\.html$ $1/space.php?$2=$3 last;
  6. rewrite ^(.*)/tag-(.+)\.html$ $1/tag.php?name=$2 last;

给discuz某版块单独配置域名

  1. server_name  bbs.c1gstudio.com news.c1gstudio.com;
  2.  
  3. location = / {
  4. if ($http_host ~ news\.divmy.com$) {
  5. rewrite ^.+ http://news.divmy.com/forum-831-1.html last;
  6. break;
  7. }
  8. }

discuz ucenter 头像 rewrite 优化

  1. location ^~ /ucenter {
  2. location ~ .*\.php?$
  3. {
  4. #fastcgi_pass  unix:/tmp/php-cgi.sock;
  5. fastcgi_pass  127.0.0.1:9000;
  6. fastcgi_index index.php;
  7. include fcgi.conf;
  8. }
  9.  
  10. location /ucenter/data/avatar {
  11. log_not_found off;
  12. access_log   off;
  13. location ~ /(.*)_big\.jpg$ {
  14. error_page 404 /ucenter/images/noavatar_big.gif;
  15. }
  16. location ~ /(.*)_middle\.jpg$ {
  17. error_page 404 /ucenter/images/noavatar_middle.gif;
  18. }
  19. location ~ /(.*)_small\.jpg$ {
  20. error_page 404 /ucenter/images/noavatar_small.gif;
  21. }
  22. expires 300;
  23. break;
  24. }
  25. }

jspace rewrite

  1. location ~ .*\.php?$
  2. {
  3. #fastcgi_pass  unix:/tmp/php-cgi.sock;
  4. fastcgi_pass  127.0.0.1:9000;
  5. fastcgi_index index.php;
  6. include fcgi.conf;
  7. }
  8.  
  9. location ~* ^/index.php/
  10. {
  11. rewrite ^/index.php/(.*) /index.php?$1 break;
  12. fastcgi_pass  127.0.0.1:9000;
  13. fastcgi_index index.php;
  14. include fcgi.conf;
  15. }

另外这里还有一个工具可以直接把apache规则转化为nginx规则

http://www.anilcetin.com/convert-apache-htaccess-to-nginx/

参考:

http://wiki.nginx.org/NginxChsHttpRewriteModule

http://blog.csdn.net/cnbird2008/archive/2009/08/04/4409620.aspx

服务器发回了不可路由的地址。使用服务器地址代替。

  Filezilla 连接FTP服务器提示“服务器发回了不可路由的地址。使用服务器地址代替。”信息,无法获取目录列表,网上查到的解决方法是:

  解决方法:更改Filezilla设置,编辑-设置-连接-FTP-被动模式,将“使用服务器的外部ip地址来代替”改为“回到主动模式”即可。

  经过实际验证,这样修改并不能解决问题。最后找到问题的根本原因,是服务器路由外网端口设置的问题。我服务器端用的也是Filezilla Server,需要在settings中修改Passive mode settings中的端口范围,例如60000-60020,FTP用户越多端口范围越大,然后再在路由设置中设置相应的端口转发,再次重新连接,问题消失了。