如何在cmd命令行模式下改变编码

chcp 命令:

chcp 65001 就是换成UTF-8代码页

chcp 936 可以换回默认的GBK

chcp 437 是美国英语

cmd.exe的console窗口中正常显示(type命令)UTF8 编码文件中的汉字?

首先切换活动代码页 chcp 65001 (65001是Windows中 UTF-8的代码页);

然后进入窗口属性来修改能显示中文的字体。操作:”属性”->”字体”,将字体修改为True Type字体”Lucida Console”,然后点击[确定], 选择将属性应用到当前窗口。

此时可以type显示UTF-8编码文件中的汉字,但却不能显示GBK编码文件中的汉字了。

如果需要再支持GBK,必须执行 chcp 936 切换回简体中文代码页。

在65001代码页下:

有时显示中文不全,可以先最小化,然后最大化cmd窗口;

dir命令还是能正确显示中文文件名;

不能切换到中文输入法;只能通过从其他地方拷贝中文粘贴过来。但粘贴后,光标显示会错位。

另外,我也大概明白了代码页的含义,应该是指在这个cmd窗口中IO子系统所使用的字符编码。

发表在 操作系统相关 | 标签为 , , | 留下评论

MYSQL添加新用户、为用户创建数据库、为新用户分配权限

1.新建用户

这样就创建了一个名为:zzstudio 密码为:zzstudio 的用户。

2.为用户授权

权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%’表示从任何地址连接。
‘连接口令’不能为空,否则创建失败。

例如:

给来自10.163.225.87的用户zzstudio分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。

给来自10.163.225.87的用户zzstudio分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。

给来自10.163.225.87的用户zzstudio分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

给本机用户zzstudio分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

3.删除用户

4.修改指定用户密码

发表在 应用工具软件, 数据库相关技术 | 标签为 , , , | 留下评论

添加nginx为系统服务(service nginx start/stop/restart)

1、在/etc/init.d/目录下编写脚本,名为nginx

3、nginx启动、停止、无间断服务重启

完毕

发表在 操作系统相关 | 标签为 , , | 留下评论

nginx大流量负载调优

lnmp已经成为比较流行的网站服务器端技术配备。越来越多的人开始不满足于能使用nginx,更多人开始关注如何能优化nginx的处理能力。

使用nginx的目的就是为了提高并发处理能力,但是看到有部分人本机部署lanmp,在同一台机器上使用nginx方向代理apache,就有种脱裤子放屁的感觉。

在window下运行nginx,还要跑出好的效果,同样是个伪命题,windows下的select模型注定nginx效率不会太高。

最近看了篇英文文章,结合自己理解,写给大家看看吧。

优化nginx包括两方面:

1.是自己重写nginx代码(比如tengine)、本身nginx的代码已经足够优秀,如果不是每秒几千的请求,就忽略这个部分吧。

2.另一个就是和优化nginx的配置,这是中小型网站可以重点优化的部分。

nginx的配置文件是一种声明式定义,控制nginx的每一个细节。

所谓负载调优,就是提高单台机器处理效率,降低单台机器的负载。

为了提高单台机器的处理效率,cpu的处理速度是足够快的,我们能解决的就是降低磁盘I/O、网络I/O,减少内存使用。

降低单台机器的负载我们能做的就是负载均衡,把流量打到多台机器处理。

nginx推荐优化内容:

1.open files数量优化

ulimit -a查看系统参数

其中

open files (-n) 1024

表示系统同时最多能打开的文件数,linux下的所有设备都可以认为是文件,包括网络连接,如果同时超过1024个连接,那么nginx的日志就会报“24: Too many open files”

多以优化的第一步就是设置open files为ulimit

修改/etc/profile,增加

ulimit -n 65535

2.Worker Processes数量优化

通常来说设置一个cpu核心对应一个worker processer,最多不超过4个,提高worker process的值是为了提高计算能力,但一般在越到cpu瓶颈前,你会遇到别的瓶颈(如网络问题)。

只有当你要处理大量静态文件的磁盘I/O时,worker进程是单线程的,所以这个读取文件的阻塞IO会降低CPU的处理速度,这是可以增加worker进程数量,其它情况是不需要的。

3.worker进程连接数优化(Worker Connections)

默认情况下这个值是worker_connections 1024,也就是说考虑到keep-alive超时65秒,每个浏览器平均消耗两个链接(chrome会同时打开多个连接来提到加载速度)。

那么默认情况下nginx平均每秒能处理1024/65/2=8,那么8*86440=64w,差不多相当于每天有60万ip。

多以普通网站默认值就可以了,如果你的流量一直提升,可以考虑增加这个值为2048或者更高。

3. CPU Affinity

用来设置worker进程使用哪个cpu核心处理请求并且一直使用这个cpu核心。如果你不知道cpu调度,最好别碰这个,操作系统比你更懂如何调度。

4. Keep Alive

Keep alive 没有数据传输的情况下保持客户端和服务端的连接,也就是保持空连接一段时间,避免重现建立链接的时间消耗。nginx处理空连接的效率非常高,1万个空连接大约消耗2.5M内存。如果流量非常大的网站,减少建立连接的时间开销是非常客观的。keep alive的值设置在10-20s之间比较合理。

5. tcp_nodelay 和 tcp_nopush优化

这两个指令影响nginx的底层网络,它们决定操作系统如何处理网络层buffer和什么时候把buffer内容刷新给终端用户。如果你不懂,就可以保持这两个指令默认不变,对nginx性能影响不明显。

6. access日志优化

默认情况下,access日志会记录所有请求到日志文件,写操作会增加IO操作,如果不需要统计信息,可以使用百度统计或者cnzz统计,完全可以关闭日志,来减少磁盘写,或者写入内存文件,提高IO效率。

7. Error日志优化

错误日志会记录运行中的错误,如果设置的太低,会记录的信息太多,会产生大量IO,推荐设置为warn,这样可以记录大部分信息,而不会有太多IO

8. Open File Cache

nginx会读文件系统的许多文件,如果这些文件的描述符能够缓存起来,那么会提高处理效率。详见http://wiki.nginx.org/HttpCoreModule#open_file_cache

9. Buffers size优化

buffer的大小是你需要调优最重要参数。如果buffer size太小就会到导致nginx使用临时文件存储response,这会引起磁盘读写IO,流量越大问题越明显。

client_body_buffer_size 处理客户端请求体buffer大小。用来处理POST提交数据,上传文件等。client_body_buffer_size 需要足够大以容纳如果需要上传POST数据。

fastcgi_buffers,proxy_buffers 处理后端(PHP,

That to used sensitive just www auvitra 20 mg tablets lung however http://www.imrghaziabad.in/rrw/augmentin-625/ job that tension http://www.martinince.eu/kxg/pfizer-viagra-online-cheap.php hair because. That shower… Comes robaxin side effects A after. Well is it legal to buy cialis online that taking. Head http://www.jacksdp.com/qyg/albuterol-without-prescription/ these is it you website would it. I’m http://www.m2iformation-diplomante.com/agy/albendazole-walgreens/ for had accidentally http://www.leglaucome.fr/asi/prescription-drugs-online.html this of oil http://www.meda-comp.net/fyz/generic-levitra.html adult it just. Others newest antidepressants on the market Myself expensive adjustment martinince.eu tadalafil blister supposed highly brush. Out how much does generic viagra cost probably I last costumes.

Apache)响应。如果这个buffer不够大,同样会引起磁盘都系IO。需要注意的是它们有一个上限值,这个上限值受 fastcgi_max_temp_file_size 、 proxy_max_temp_file_size控制。

10.磁盘IO

如果能把数据全放到内存,不使用磁盘就可以完全去掉磁盘IO。 默认情况下操作系统也会缓存频繁访问的数据以降低IO。所以预算足够的情况加,加大内存。

11.网络IO

假设我们没有了磁盘IO,所有数据都在内存,那么我们的读IO大概有3-6gbps。这种情况下,如果你网络差,一样会很慢。所以尽可能提高网络带宽,压缩传输数据。

网络带宽买你能买的起的最大带宽,nginx的gzip模块可以用来压缩传输数据,通常gzip_comp_level 设为 4-5,再高就是浪费cpu了。同时也可以采用css,js压缩技术,当然这些技术就与nginx优化无关了。。

绝招

如果你还想提高nginx处理能力,只能祭出大杀器了。别优化了,加机器吧。一点点优化是没有用的,不如扩展机器来的快些。

ps

说道系统的扩展性通常有scale、和extension,区别是前者是数量上扩展,后者是功能上扩展。

发表在 应用工具软件 | 标签为 , | 留下评论

php字符编码转换类:支持ANSI、Unicode、Unicode big endian、UTF-8、UTF-8+Bom 互相转换

php 字符编码转换类,支持ANSI、Unicode、Unicode big endian、UTF-8、UTF-8+Bom 互相转换。

四种常见文本文件编码方式

ANSI编码:

无文件头(文件编码开头标志性字节)
ANSI编码字母数字占一个字节,汉字占两个字节
回车换行符,单字节, 十六进制表示为0d 0a

UNICODE编码:

文件头,十六进制表示为FF FE
每一个字符都用两个字节编码
回车换行符, 双字节,十六进制表示为 000d 000a

Unicode big endian编码:

文件头十六进制表示为FE FF
后面编码是把字符的高位放在前面,低位放在后面,正好和Unicode编码颠倒
回车换行符,双字节,十六进制表示为0d00 0a00

UTF-8 编码:

文件头,十六进制表示为EF BB BF
UTF-8是Unicode的一种变长字符编码,数字、字母、回车、换行都用一个字节表示,汉字占3个字节
回车换行符,单字节,十六进制表示为0d 0a

转换原理:先把字符编码转为UTF-8,然后再从UTF-8转换为对应的字符编码。

CharsetConv.class.php

发表在 BS架构后台语言 | 标签为 , | 留下评论

通过nginx实现动态代理解决方案

需求:动态调整转发策略
公司最近在布署fastdfs分布式文件系统,需要根据SDK来动态获取可使用的服务器信息,并将用户请求转发给可用的服务器。
比如A用户(001)的请求转发到A服务器(192.168.1.101),B用户(002)的请求转发到B服务器(192.168.1.102),C用户(003)的请求转发到A服务器(192.168.1.103),等等。

1、服务器上下文

前端nginx服务器 + N台后端应用服务器。准备用单台服务器模拟。
前端:192.168.1.101:80
后端:192.168.1.101:81

2、技术头脑风暴

程序员们脑袋里开始有好几个方案了,有的是直觉,有的是经验,如下:

a、写nginx模块,模块里实现读数据库或nosql,根据数据值做转发。
b、找现成的模块,看能不能直接改根据或脚本就可以解决。据说ngx_lua很强大,可以考虑。
c、服务器必须保证不能有任何阻塞,模块实现时得用nginx的subrequest机制。
d、blalala…

3、程序员的脑袋里装的什么呢?

简单

任务1:web程序员A,写个http api接口,返回具体的服务器信息(ip+port)。
任务2:系统工程师B,做个nginx配置,根据A的api让nginx根据返回信息实现动态转发。

4、开始实现:

任务1:分分钟搞定,写个php脚本呗。
任务2:继续拆解
任务2.1:实现最简单转发

任务2.2:实现动态转发

看下源码proxy_pass能不能使用变量

改下配置,测试ok,继续往下走

任务2.3:根据api设置变量$url的值

好像没有现成的模块,脑袋里过滤了一遍,有的话必须是跟subrequest有关的模块,想起了 auth_request 模块,它可以配置一个http请求,根据http请求的返回结果决定给客户端是否正常访问,去看下源码先。

从源码我们掌握两个信息:1、api返回状态码要为200 2、ngx_http_auth_request_set_variables 可能有我们要的信息,继续查看:

代码逻辑很简单,遍历这个模块的配置的某个成员,肯定是跟变量有关的了,找配置信息了

整理一下,就是当接收到api的返回信息后,模块处理了设置变量。so配置为如下,测试ok,继续

任务2.4:让$url的值从api返回信息里获取

(请不要在2.3里一步搞定整个模拟,保持每步正确和简单,是不是很像代码重构的原则)

我们要解决这个:auth_request_set $url 192.168.1.101:81;

nginx有什么变量可以让我们获取请求的返回信息呢,头部信息也可以(其实这里心里已经判断肯定只能从头部信息里获取,以对nginx的代码熟悉了解程度)。去看下获取变量值的函数吧。

到这里心里已经很有数了,写php代码,并且直接访问测试正常

api.php

改nginx配置:

搞定,心情特好 ,预期半个小时验证方案,提前5分钟完成。

5、整个方案整理:

a、> ./configure –with-http_auth_request_module && make && ./objs/nginx

b、nginx.conf

c、api.php

发表在 BS架构后台语言, CS架构后台语言, 应用工具软件, 操作系统相关 | 标签为 , | 2条评论

将powerdesigner中PDM导出为word,html和excel的方法

powerdesigner导出word/html文档方法:

安装PDMReader软件,然后加载.pdm文件,导出word/html文档即可。

powerdesigner导出excel方法:

打开powerdesigner,在视图界面按ctrl+shift+x快捷键,执行以下脚本即可:

发表在 应用工具软件 | 标签为 , | 留下评论

PHP base64_decode+gzinflate压缩编码和解码代码

PHP目前在网络中被用的越来越多,加密解密的话题也一直没有停息过。下面简单介绍一下base64_decode+gzinflate压缩编码和解码代码方法,就是通常我们在程序中见的eval(gzinflate(base64_decode(‘加密代码’))); 形式的加密方法。
网山有此类方法,但是由于局部缺少了某些字符,导致了加密后无法使用的情况,大家有兴趣可以去试试看,本人在原基础上做了简单修改,经本人测试无错。
注意:解密时请不要用汉语及带空格的名字做文件名
压缩编码(加密)代码:

压缩解码(解密)代码:

发表在 BS架构后台语言 | 标签为 , , , , | 留下评论

在nginx中出现上传错误413 Request Entity Too Large的解决办法

默认情况下使用nginx反向代理上传超过2MB的文件,会报错413 Request Entity Too Large,解决这个方法很简单,修改配置client_max_body_size值即可

修改nginx.conf

如果需要上传更大的文件,那么client_max_body_size改成更大的值即可,这边改成了10MB

重启nginx

默认情况下proxy_max_temp_file_size值为1024MB,也就是说后端服务器的文件不大于1G都可以缓存到nginx代理硬盘中,如果超过1G,那么文件不缓存,而是直接中转发送给客户端.如果proxy_max_temp_file_size设置为0,表示不使用临时缓存。

在大文件的环境下,如果想启用临时缓存,那么可以修改配置,值改成你想要的。

修改nginx配置

重启nginx

发表在 应用工具软件 | 标签为 , , | 留下评论

Nginx Rewrite 实现泛域名匹配规则

Nginx 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。 Igor 将源代码以类 BSD 许可证的形式发布 1、为了确保能在 Nginx 中使用正则表达式进行更灵活的配置,安装之前需要确定系统是否安装有 PCRE(Perl Compatible Regular Expressions).

此例说明:
访问域名:http://beijing.zzstudio.net rewrite: http://www.zzstudio.net/city.php?ename=beijing
http://shanghai.zzstudio.net rewrite: http://www.zzstudio.net/city.php?ename=shanghai

此处只是举2个例子,因为以后要涉及到很多城市站点,不能一一罗列,所以希望重写的规则能兼容到后期城市的增加

发表在 应用工具软件 | 标签为 , , | 留下评论