FlashFXP连接远程ftp时虽然不会影响到我们正常使用了,但是看起来也是非常的不爽的,于是就想办法来解决了了,我们知道只要是乱码就会有编码问题了,所以我觉得这个也是编码问题,我检查之后发现原因就是这些字符是utf-8编码,而windows下文件名是GBK编码。
FlashFXP中文显示乱码
现在我们在flashfxp中点击“选项->参数设” 但是没有找到,后来百度后找到解决办法,具体如下。
解决办法
打开:站点->站点管理器,选择相应的站点,然后选择高级选项,这里面有关于站点编码的设置。如下图:
选择完毕后,重新连接下就OK了。
好了可能版本不一样设置会有所区别了,不过大家可以多在各种工具与选项中进行操作了。
前提准备:如果还未注册Namesilo账号,先注册一个。
1.登录Godaddy,进入我的账户,
5.登录Namesilo,进入transfer,提交刚才要转移的域名,点击SEARCH,
解决的方法:存储你的信用卡到你的账户,你需要通过邮件发送你的信用卡正面照(涂抹掉除了末4位的卡号、过期时间、姓名)到support@namesilo.com,成功后,会收到NameSilo的邮件回复提醒:Thanks. you can now store the card on the Billing Manager page. 这样你就可以进入你的账号,点击右侧的billing manager,
进入billing manager页面后,点击add a billing profile
迁移OpenCart网站第二步:还原数据库
对Websocket进行负载均衡
http {
// ...省略
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream websocketCluster {
ip_hash;
server 127.0.0.1:6181;
server 127.0.0.1:6182;
}
server {
listen 80;
proxy_pass httpCluster;
#域名可以有多个,用空格隔开
server_name localhost 127.0.0.1;
location /chat {
# proxy_pass 127.0.0.1:6181
proxy_pass websocketCluster
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
// ...省略
}
WebSocket负载均衡方案
目标
根据指定的key对websocket连接进行负载均衡,达到一致性哈希的效果。
调度模式
Haproxy,负载均衡调度模式有如下几种:
roundrobin,表示简单的轮询,这个不多说,这个是负载均衡基本都具备的;
static-rr,表示根据权重;
leastconn,表示最少连接者先处理;
source,表示根据请求源IP;
uri,表示根据请求的URI;
url_param,表示根据请求的URl参数'balance url_param' requires an URL parameter name
hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;
rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。
方案及实现
模式:url_param
前端:通过带参的uri,来向server端(Haproxy/Socketserver)发起请求,如:
ws://localhost/ws?userid=111,来向server端发起请求。
Haproxy:通过acl来配置规则,如:
acl is_websocket hdr(Upgrade) -i WebSocket
acl is_websocket hdr_beg(Host) -i ws
反向代理负载均衡配置,如:
backend socket_backend_url_param
balance url_param userid
option forwardfor
timeout queue 5000
timeout server 5000
timeout connect 5000
server server1 test:8081
server server2 test:8082
整体配置
globalmaxconn 4096 # Total Max Connections. This is dependent on ulimitnbproc
为websocket应用实现负载均衡
前言:
websocket相信经常逛cnode社区的孩纸们都知道…具体API使用方式也再熟悉不过了…使用nodejs开发的websocket服务端也是品种繁多…github上总有你喜欢的…平时耍耍当然没问题…如果真要是承载一个生产环境服务的核心…总会有些问题需要你去解决.
不可避免的问题:
按照一个web请求占用线程数为参照…我们可以把nodejs称之为单线程语言…而java的servlet这种应该就是多线程语言了…我们可以想象在高并发情况下…单线程语言的运行风险还是蛮高的…毕竟如果一个请求出事那么整个线程(进程)就退出了…于是乎停止服务了…为了规避风险…我们常常会使用负载均衡技术…保证整个系统的对外正常服务…
解决方案:
负载均衡方案目前来讲…用apache的也不多了吧…普遍的解决方案是使用nginx配置多个upstream.实现负载均衡…例子如下:
http{
upstream http_sr {
server 192.168.0.2:8080;
server 192.168.0.3:8080;
}
server {
listen 80 ;
proxy_pass http_sr;
}
}
这样对于部署在192.168.0.2和3这两台机器上http服务…就通过这台nginx服务器实现了负载均衡…但是websocket的服务端nginx的http反向代理是不能支持的.从websocket的specs我们可以很明确的其实基于tcp协议的…http协议虽然也是基于tcp…它们都使用了tcp的握手方式…但是nginx的http_proxy_pass是不能支持websocket的…
于是我们可以寻根问主…让nginx支持tcp_proxy_pass…那websocket负载均衡的问题不就迎刃而解了…nginx有丰富的第三方扩展…一顿搜索在github上找到了yaoweibin老师的nginx_tcp_proxy_module
二话不说下载此模块…重新编译nginx(此过程略吧大家应该都懂) …修改nginx配置文件加入下面conf:
tcp {
upstream websocket {
server 192.168.0.2:8080;
server 192.168.0.3:8080;
check interval=3000 rise=2 fall=5 timeout=1000;
}
server {
listen 80;
proxy_pass websocket;
}
}
这个module的作者在description写到:
The motivation of writing these modules is Nginx’s high performance and
robustness. At first, I developed this module just for general TCP
proxy. And now, this module is frequently used in websocket reverse
proxying.
目前基本就是用来做websocket反向代理的…测试后确实是支持的…非常感谢module的开发者另外值得注意的是你要在nginx里同时配置tcp和http…那么它们是不能listen同一端口的…
发现一个刚出炉的文件比较小工具 icdiff. icdiff 可以并列显示两个文件的不同,比传统的 diff 好看多了。
虽然传统 diff 很强大,估计没几个人喜欢看这样的比较结果:
$ diff 1.css 2.css
icdiff 是 python 程序,从 github 上下载的是可执行文件,直接运行就可以了。icdiff 能并列显示比较结果,还能高亮显示差异,找起问题来容易多了:
$ git clone https://github.com/jeffkaufman/icdiff.git
$ cd icdiff
$ ./icdiff 1.css 2.css