存档

文章标签 ‘vps’

解决mysql数据库Forcing close of thread 的错误提示

2013年4月8日 没有评论

今天发现客户的网站老出现打不开的情况,发现连接数有超出的现象,但观察系统事件日志,都是下面的错误:

MySQL: Forcing close of thread **** user:”

事件类型: 警告
事件来源: MySQL
事件种类: 无
事件 ID: 100
日期: 2013-4-8
事件: 12:21:01
用户: N/A
计算机: vps12com0630
描述:
MySQL: Forcing close of thread 123756 user: ”

For more information, see Help and Support Center at http://www.mysql.com.

检查系统资源和连接数都是正常的情况下,没有找到解决办法。

在mysql配置文件my.ini 的 [mysql] 下面加上这个解决问题了!

skip-locking
skip-name-resolve

其他的同类错误要注意查看日志。新版本mysql的写法应该是:

skip-external-locking
skip-name-resolve

nginx.conf配置文件详解

2013年4月1日 没有评论

Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

以下是配置文件 nginx.conf 中文注释说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#使用哪个用户启动 nginx 前面是用户,后面是用户组
user www www;
 
#nginx工作的进程数量
worker_processes 2;
 
# [ debug | info | notice | warn | error | crit ] 日志的位置
error_log /var/htdocs/logs/nginx_error.log crit;
error_log /dev/null;
 
#进程号保存文件
pid /usr/local/nginx/nginx.pid;
 
#每个进程可以打开的最大文件字节数
worker_rlimit_nofile 51200;
 
events
{
# use [ kqueue | rtsig | epoll | /dev/poll | select | poll ];
use epoll; #使用epoll(linux2.6的高性能方式)
worker_connections 51200; #每个进程最大连接数(最大连接=连接数x进程数)
}
 
http
{
#文件扩展名与文件类型映射表
include mime.types;
 
#默认文件类型
default_type application/octet-stream;
 
#日志文件格式
log_format main '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
 
log_format download '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_range" "$sent_http_content_range"';
 
#默认编码
charset utf-8;
 
server_names_hash_bucket_size 128;
#开启高效文件传输模式
sendfile on;
#以下两个选项用于防止网络阻塞
 
tcp_nopush on;
tcp_nodelay on;
 
#长链接超时时间
keepalive_timeout 300;
 
#fastcgi连接超时时间,下面的看字面意思都能理解个大概了,就不解释了.
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_temp_path /dev/shm;
 
#打开gzip压缩
gzip on;
#最小压缩文件大小
gzip_min_length 1k;
#压缩缓冲区
gzip_buffers 4 8k;
#压缩版本(默认1.1,前端为squid2.5使用1.0)
gzip_http_version 1.1;
#压缩类型,默认就已经包含text/html 所以下面就不用再写了,当然写上去的话,也不会有问题,但是会有一个warn
gzip_types text/plain application/x-javascript text/css text/html text/javascript application/xml;
#错误页面
error_page 404 http://yhjhappy234.blog.163.com/;
error_page 403 http://yhjhappy234.blog.163.com/;
#上传文件大小限制
client_max_body_size 2m;
#设定请求缓
client_header_buffer_size 16k;
large_client_header_buffers 4 64k;
#设定负载均衡的服务器列表
#如果在同一台机器上,单独起4组独立的php-cgi进程(每组8个子进程),性能应该不如1组php-cgi进程(32个子进程),因为1组进程,eaccelerator的PHP二进制文件缓存是共享的,1组进程命中率较高。
#不过好处是,碰到某组的页面假死的话,其他端口就可以接管了,实测下来似乎发生502错误的概率降低了很多,或者说我这样配置以后还没有遇到
upstream mysvr {
#weigth参数表示权值,权值越高被分配到的几率越大
#本机上的Squid开启3128端口
server 192.168.101.26:8080 weight=5;
server 192.168.101.27:8080 weight=1;
server 192.168.101.202:8080 weight=1;
}
#下面开始虚拟主机的配置
server
{
listen 80;
server_name www.kedou.com;
index index.jsp;
root /usr/local/tomcat/webapps/ROOT;
if (-d $request_filename)
{
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
#设定本虚拟主机的访问日志
access_log logs/www.kedou.com.access.log main;
 
location ~ .*\.php?$
{
include fcgi.conf;
fastcgi_pass 192.168.101.202:8080
fastcgi_index index.jsp;
}
#如果访问 /img/*, /js/*, /css/* 资源,则直接取本地文件,不通过squid
#如果这些文件较多,不推荐这种方式,因为通过squid的缓存效果更好
location ~ ^/(img|js|css)/ {
root /var/htdocs/kedou;
expires 24h;
}
 
#对 "/" 启用负载均衡
location / {
proxy_pass http://127.0.0.1;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
 
proxy_temp_file_write_size 64k;
}
 
#设定查看Nginx状态的地址
location /NginxStatus {
stub_status on;
access_log on;
auth_basic "NginxStatus";
auth_basic_user_file conf/htpasswd;
}
}
}

修改Nginx版本头信息(可选),编辑src/http/ngx_http_header_filter_module.c:

1
# vi +48 src/http/ngx_http_header_filter_module.c

找到下面两行:

1
2
static char ngx_http_server_string[] = "Server: nginx" CRLF;
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;

将其修改为:

1
2
static char ngx_http_server_string[] = "Server: Ninja Web Server" CRLF;
static char ngx_http_server_full_string[] = "Server: Ninja Web Server" CRLF;

保存并关闭文件。现在可以开始编译服务器了,将下面的配置代码添加到nginx.conf中,禁止在所有自动产生的错误页面中显示Nginx版本号:

1
server_tokens off

什么是iis连接数

2013年3月29日 没有评论

iis连接数指并发连接数,什么意思呢?

要分几种情况:(以100m空间50人在线为例)
a 用户单点下载你的文件,结束后正常断开,这些连接是按照瞬间计算的,就是说你50人的网站瞬间可以接受同时50个点下载
b 用户打开你的页面,就算停留在页面没有对服务器发出任何请求,那么在用户打开一面以后的20分钟内也都要算一个在线,就是说你50人的网站

20分钟内可以接受不同用户打开50个页面
c 上面b的情况用户继续打开同一个网站的其他页面,那么在线人数按照用户最后一次点击(发出请求)以后的20分钟计算,在这个20分钟内不管用

户怎么点击(包括新窗口打开)都还是一人在线。
d 当你的页面内存在框架(iframe),那么每多一个框架就要多一倍的在线!因为这相当于用户同一时间向服务器请求了多个页面。
e 当用户打开页面然后正常关闭浏览器,用户的在线人数也会马上清除。

然后了解什么是论坛在线人数。
论坛在线只是计算一定时间内的活动用户数。
这里的时间用户可以自己设定,动网论坛默认为40分钟的相对准确值。

根据上面的说明,显然论坛在线和iis连接数的概念不同
为什么会出现iis连接数和论坛在线不符合的情况?
现具体分析如下:

1:您使用了插件版论坛或者美化版论坛!
现在的插件很垃圾,不但占服务器资源,而且会使论坛运行变慢(没有插件可以快一倍以上),同时很占在线人数,有的插件调用很多框架,少则2、3个,多则4、5个! 甚至有在线播放音乐,这样一个人在线就相当与很多人在线!而美化版论坛因为使用大量的图片,也同样比标准版论坛占用iis数量大。

2:您的网站是主页+论坛的形式!
这样主页和论坛要争夺你的在线人数!

3:你的论坛内部有播放器!
一个人在线,然后他在线播放音乐,就占二个人在线!

4:你的论坛内部存在框架形式的网页!
每一个框架,就多一倍的在线!

5:你的论坛设置在线时间过小!
动网默认为40分钟,因为论坛在线只是计算一定时间内的活动用户数,当您设定的时间较小的时候,看起来论坛在线的人数就自然少了!

6:你的空间存在多个论坛!
有的客户在一个空间里上传多个论坛,如bbs bbs1 bbs2 等等 等等
毫无疑问,这样个论坛也是要争夺再线人数的!

7:你的论坛图片等文件被人盗链!
比如:你的论坛有张图片文件,被粘贴(注意是粘贴不是上传)到别的论坛!
别的论坛的用户在浏览该文件的时候也算一个在线人数!
尤其是logo连接的时候注意,一定要对方把您的logo上传到他的空间!

8:你的空间上放有下载文件!
如果用户用网络蚂蚁类的软件,每一个线程就表示一个在线,非常厉害!

解决vi在ubuntu及其他unix等系统中使用不正常的方法

2013年2月26日 没有评论

解决ubuntu中vi不能正常使用方向键与退格键的问题

方案一:
问题:
ubuntu中vi在编辑状态下方向键不能用,还有回格键不能删除等我们平时习惯的一些键都不能使用。

解决办法:
可以安装vim full版本,在full版本下键盘正常,安装好后同样使用vi命令。
安装vim:
ubuntu预装的是vim tiny版本,而需要的是vim full版本。执行下面的语句安装vim full版本:
$sudo apt-get remove vim-common
$sudo apt-get install vim
这样就行了,vim是一款优秀的软件,可以在运用中体会到。

方案二:
在vi命令行使用命令“:set nocompatible”,就是设置vi不使用兼容模式。

ubuntu11.10下的VI命令:
vi 有三种模式,输入模式,编辑模式,“:”命令模式
vi 进入以后默认是编辑模式
vi 编辑模式默认的快捷键 上下左右分别是 J K H L
vi 在编辑模式使用 i 可以进入输入模式
vi 输入模式只能输入英文,默认不能使用上下左右箭头
vi 输入模式用Esc可以返回到编辑模式
vi 编辑模式 Shift + ; 可以进入命令模式
vi 命令模式w保存,q退出

1)对所有用户都有效,解决系统中所用用户的vi中文乱码问题

sudo gedit /etc/vim/vimrc.tiny

加入如下内容:

#该文件的内容显示如下:

” Encoding related

set encoding=UTF-8

set langmenu=zh_CN.UTF-8

language message zh_CN.UTF-8

set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

set fileencoding=utf-8
2)只对当前用户有效的解决方法

ubuntu默认在当前用户的家目录下,没有.vimrc文件,这个时候可以自己touch一个.vimrc文件,且在其中加入 www.2cto.com

#该文件的内容显示如下:

” Encoding related

set encoding=UTF-8

set langmenu=zh_CN.UTF-8

language message zh_CN.UTF-8

set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

set fileencoding=utf-8

美国vps挂载windows未使用硬盘教程

2013年1月19日 没有评论

新购买开出来的美国vps默认只有系统分区一个c盘。我们可以通过以下步骤把未分区的磁盘进行调整。

第一步 右键 我的电脑->管理

第二步 转换磁盘管理

第三步 新建卷

第四步 分区指定格式化

第五步 打开我电脑可以看到新增加的分区了

 

新加卷的硬盘已经加好了。

DCOM配置时右键属性不见的解决办法

2013年1月3日 没有评论

需要进行MapXTreme服务的Dcom安全进行配置,但是运行DCOMCNFG,进到组件服务中,

在MapBroker Application上 右击却没有出现属性,只有查看一项。

解决方法 :请确保下面四个服务是开着的话,那就能确保右键的属性能够出现。
1、Remote Procedure Call (RPC)
2、COM+ Event System
3、DCOM Server Process Launcher
4、Distributed Transaction Coordinator
然后再进入组件服务,就能在DCOM配置中看到右键的属性了,并且组件服务计算机中的”我的电脑”上的那个红色的向下箭头也消失了。

以上这四个服务中 最有可能MsDTC 服务无法启动,提示 :

无法启动DTC 服务,错误1067:进程意外终止。

解决方法:
删除注册表中的键:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
HKEY_CLASSES_ROOT\CID
停止MSDTC服务:net stop msdtc
卸载MSDTC服务:msdtc -uninstall
重新安装MSDTC服务:msdtc -install

yum安装crontab

2012年12月12日 没有评论

crontab 是linux下的计划任务服务程序。有时我们需要定时做一些备份之类的需要使用到。最简化安装时有时未安装上。我们用yum来完成安装。

1、安装

1
2
yum -y install vixie-cron
yum -y install crontabs

2、启动

1
2
3
service crond restart
Stopping crond:                                            [  OK  ]
Starting crond:                                            [  OK  ]

启动成功说明安装完毕。

分类: Linux 标签: , , , , ,

Ubuntu给网卡增加和删除IP地址

2012年12月11日 没有评论

永久修改
修改/etc/network/interfaces

1
vim /etc/network/interfaces
1
2
3
4
5
6
7
8
9
10
auto eth0
iface eth0 inet static
    address 172.16.3.123
    netmask 255.255.255.0
    gateway 172.16.3.1
 
auto eth0:1
iface eth0:1 inet static
    address 10.16.3.123
    netmask 255.255.0.0

然后使用以下命令重启网卡配置并生效。

1
ifup eth0:1

注:不要使用/etc/init.d/network restart的方法!!

动态修改方法1
#网卡上增加一个IP:

1
ifconfig eth0:1 192.168.0.1 netmask 255.255.255.0

#删除网卡的第二个IP地址:

1
ip addr del 192.168.0.1 dev eth0

这种方式增加的虚拟IP,可以通过ifconfig查看

动态修改方法2
另一种增加虚拟IP的方法(ifconfig查看不到):
增加虚拟IP:

1
ip -f inet addr add 192.168.146.229/32 brd 192.168.146.229 dev eth0

查看虚拟IP:

1
ip -f inet addr

删除虚拟IP:

1
ip -f inet addr delete 192.168.146.229/32 brd 192.168.146.229 dev eth0
分类: Linux 标签: , , , , ,

Apache用户验证

2012年11月25日 没有评论

Apache服务器已经内置用户验证机制,大家只要适当的加以设置,便可以控制网站的某些部分要用户验证。大家只要跟着我一步步做下来就应该能轻松实现用户验证。
前期准备,必须已经安装apache,如果还没安装,或者对安装很模糊的话,请先预习

第1步:
我们在/var/www(apache的主页根目录)下建立一个vps12com目录。

1
mkdir /var/www/vps12com

第2步
然后我们编辑httpd.conf
添加

1
2
3
4
5
6
7
8
Alias /test"/var/www/vps12com"
 
Options Indexes MultiViews
AllowOverride AuthConfig #表示进行身份验证
Order allow,deny
Allow from all
 
#AllowOverride AuthConfig 表示进行身份验证 这是关键的设置

第3步
在/var/www/test创建.htaccess文件

1
vi /var/www/vps12com/.htaccess
1
2
3
4
AuthName "vps12com share web"
AuthType Basic
AuthUserFile /var/www/test/.htpasswd
require valid-user

#AuthName 描述,随便写
#AuthUserFile /var/www/vps12com/.htpasswd
#require valid-user 或者 require user vps12com 限制是所有合法用户还是指定用户
#密码文件推荐使用.htpasswd,因为apache默认系统对“.ht”开头的文件默认不允许外部读取,安全系数会高一点哦。

第4步
就是创建apache的验证用户

1
htpasswd -c /var/www/vps12com/.htpasswd vps12com

#第一次创建用户要用到-c 参数 第2次添加用户,就不用-c参数

如果你们想修改密码,可以如下

1
htpasswd -m .htpasswd vps12com

第5步:
ok,重启apache服务,然后访问 http://你的网站地址/test 如果顺利的话,应该能看到一个用户验证的弹出窗口,只要填入第4步创建的用户名和密码就行。

为了服务器的性能,一般不推荐使用AllowOverride AuthConfig或者AllowOverride ALL,因为这会使服务器会不断的去寻找.htaccess,从而影响服务器的效能,一般我们把一些后台管理界面或者其他特殊目录可能需要加验证这个需求

如何全面测试哪个海外主机速度更快

2012年11月22日 没有评论

对于准备购买海外主机的朋友来说,除了价格、品牌、口碑外,速度也是要考虑的一项非常重要的因素。如何测试海外主机的速度呢?很多朋友可能会在自己的电脑上使用Ping命令查看某个海外主机的响应时间,或者下载测速文件、访问测速页面,以判断该海外主机速度快慢。

不过这样只能测试出你访问该主机的速度,显然不够全面,除了自己访问速度快外,还应该考虑你的网站访问者的访问速度,而你的网站访问者可能会遍布全国甚至世界各地,现在就为大家介绍几个很赞的在线网站测速工具,教你如何测试全国甚至全球范围访问海外主机的速度!

在线网站测速工具:

使用方法:在网页中的文本框输入你要测试的海外主机的网址或IP,点后面的按钮开始测速,所用时间越短,说明速度越快。

Just Ping:http://www.just-ping.com

Just Ping是最早提供多地在线Ping测速工具的网站,在全球有近60个测速点,适合网站访客主要是海外用户的网站,如外贸网站。