MongoDB安全启动及停止数据库

孤魂 发表了文章 • 0 个评论 • 749 次浏览 • 2016-05-06 09:33 • 来自相关话题

最近开始转战MongoDB,记录一下MongoDB使用过程中所遇到的问题及解决方法!
Centos7启动MongoDBsystemctl restart mongod.serviceMongoDB安全停止mongo admin --eval "db.shutdownServer()" 查看全部
最近开始转战MongoDB,记录一下MongoDB使用过程中所遇到的问题及解决方法!
Centos7启动MongoDB
systemctl restart mongod.service
MongoDB安全停止
mongo admin --eval "db.shutdownServer()"

CENTOS服务器安装MiniDLNA媒体共享服务

孤魂 发表了文章 • 0 个评论 • 997 次浏览 • 2016-03-28 10:33 • 来自相关话题

DLNA就不多说了,不明白的朋友请自行百度,MiniDLNA官方网站:http://minidlna.sourceforge.net/
安装之前需要先添加必要的库,如果提示ffmpeg没有,请自己添加源yum -y install http://li.nux.ro/download/nux/ ... h.rpm
yum install {flac,libogg,libid3tag,libexif,sqlite,ffmpeg,libvorbis,libjpeg,libavutil}-devel gcc
然后安装MiniDLNAyum install minidlna
配置MiniDLNAvi /etc/minidlna.conf# media_dir=/opt #注释掉这一行,添加下面的配置
media_dir=V,/home/share/video
media_dir=P,/home/share/photo 查看全部
DLNA就不多说了,不明白的朋友请自行百度,MiniDLNA官方网站:http://minidlna.sourceforge.net/
安装之前需要先添加必要的库,如果提示ffmpeg没有,请自己添加源
yum -y install http://li.nux.ro/download/nux/ ... h.rpm
yum install {flac,libogg,libid3tag,libexif,sqlite,ffmpeg,libvorbis,libjpeg,libavutil}-devel gcc
然后安装MiniDLNA
yum install minidlna
配置MiniDLNA
vi /etc/minidlna.conf
# media_dir=/opt #注释掉这一行,添加下面的配置
media_dir=V,/home/share/video
media_dir=P,/home/share/photo

家用CENTOS服务器使用SAMBA建立共享文件夹的方法

孤魂 发表了文章 • 0 个评论 • 787 次浏览 • 2016-03-27 20:47 • 来自相关话题

今天新购买了一台HP ML10 V2的服务器,因为主要是做数据处理和存储,所以选择了Centos做为服务器操作系统,当然还有一个娱乐共享不能少,所以就需要在Centos中建议共享文件夹,在配置过程中,主要的问题点如下:
 
1、中文文件名乱码问题,解决方法为在配置文件中,指定编码为UTF-8
[global]
netbios name = CENTOS_SERVER
server string = Kalvin's Home Server
security = user
log file = /var/log/samba/log.%m
max log size = 50
cups options = raw
load printers= no
dos charset= UTF-8
unix charset = UTF-8
display charset = UTF-8
guest account =nobody
map to guest = bad user

[SHARE]
comment = Share folder
path = /data1/share
read only = no
create mask = 0664
directory mask = 0775
browseable = yes
guest ok = yes
public = yes
writable = yes

 
2、SAMBA共享可以访问到文件夹,但不可以查看文件和建议文件,解决方法是将共享文件夹权限设置成777后,运行setsebool samba_export_all_ro=1
setsebool samba_export_all_rw=1 查看全部
今天新购买了一台HP ML10 V2的服务器,因为主要是做数据处理和存储,所以选择了Centos做为服务器操作系统,当然还有一个娱乐共享不能少,所以就需要在Centos中建议共享文件夹,在配置过程中,主要的问题点如下:
 
1、中文文件名乱码问题,解决方法为在配置文件中,指定编码为UTF-8
[global]
netbios name = CENTOS_SERVER
server string = Kalvin's Home Server
security = user
log file = /var/log/samba/log.%m
max log size = 50
cups options = raw
load printers= no
dos charset= UTF-8
unix charset = UTF-8
display charset = UTF-8
guest account =nobody
map to guest = bad user

[SHARE]
comment = Share folder
path = /data1/share
read only = no
create mask = 0664
directory mask = 0775
browseable = yes
guest ok = yes
public = yes
writable = yes

 
2、SAMBA共享可以访问到文件夹,但不可以查看文件和建议文件,解决方法是将共享文件夹权限设置成777后,运行
setsebool samba_export_all_ro=1
setsebool samba_export_all_rw=1

记MySQL MERGE引擎分表存储实战

孤魂 发表了文章 • 0 个评论 • 851 次浏览 • 2016-03-12 18:50 • 来自相关话题

最近收集的数据量比较大,都是在千万级别,使用MySQL数据表,为了解决性能问题,需要使用到MySQL分表存储来解决服务器IO的问题。数据库的建立使用index_id做索引,以一百万为单位,超过一百万,自动建立新表。CREATE TABLE `ms_index_data_0` (
    `index_id` int(10) NOT NULL AUTO_INCREMENT,
    `status` tinyint(1) NOT NULL DEFAULT '0',
    `category_id` int(5) NOT NULL,
    `add_time` int(10) NOT NULL,
    `update_time` int(10) NOT NULL,
    `user_name` varchar(100) NOT NULL,
    `question_subject` varchar(255) NOT NULL,
    `question_detail` text,
    `repeat` varchar(100) NOT NULL,
    PRIMARY KEY (`index_id`),
    UNIQUE KEY `repeat` (`repeat`),
    KEY `status` (`status`),
    KEY `category_id` (`category_id`),
    KEY `update_time` (`update_time`),
    KEY `user_name` (`user_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `ms_index` (
    `index_id` int(10) NOT NULL AUTO_INCREMENT,
    `status` tinyint(1) NOT NULL DEFAULT '0',
    `category_id` int(5) NOT NULL,
    `add_time` int(10) NOT NULL,
    `update_time` int(10) NOT NULL,
    `user_name` varchar(100) NOT NULL,
    `question_subject` varchar(255) NOT NULL,
    `question_detail` text,
    `repeat` varchar(100) NOT NULL,
    PRIMARY KEY (`index_id`),
    UNIQUE KEY `repeat` (`repeat`),
    KEY `status` (`status`),
    KEY `category_id` (`category_id`),
    KEY `update_time` (`update_time`),
    KEY `user_name` (`user_name`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 INSERT_METHOD=LAST UNION=(`ms_index_data_0`);

CREATE TABLE `ms_post_data_0` (
    `post_id` int(10) NOT NULL AUTO_INCREMENT,
    `index_id` int(10) NOT NULL,
    `add_time` int(10) NOT NULL,
    `is_best` tinyint(1) NOT NULL DEFAULT '0',
    `user_name` varchar(100) NOT NULL,
    `question_detail` text NOT NULL,
    `repeat` varchar(100) NOT NULL,
    PRIMARY KEY (`post_id`),
    UNIQUE KEY `repeat` (`repeat`),
    KEY `add_time` (`add_time`),
    KEY `index_id` (`index_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `ms_post` (
    `post_id` int(10) NOT NULL AUTO_INCREMENT,
    `index_id` int(10) NOT NULL,
    `add_time` int(10) NOT NULL,
    `is_best` tinyint(1) NOT NULL DEFAULT '0',
    `user_name` varchar(100) NOT NULL,
    `question_detail` text NOT NULL,
    `repeat` varchar(100) NOT NULL,
    PRIMARY KEY (`post_id`),
    UNIQUE KEY `repeat` (`repeat`),
    KEY `add_time` (`add_time`),
    KEY `index_id` (`index_id`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 INSERT_METHOD=LAST UNION=(`ms_post_data_0`);
如果到时候新增加表,只需要ALETR一下即可:ALTER TABLE `ms_index` ENGINE=MRG_MyISAM UNION=(`ms_index_data_0`,`ms_index_data_1`) INSERT_METHOD=LAST; 查看全部
最近收集的数据量比较大,都是在千万级别,使用MySQL数据表,为了解决性能问题,需要使用到MySQL分表存储来解决服务器IO的问题。数据库的建立使用index_id做索引,以一百万为单位,超过一百万,自动建立新表。
CREATE TABLE `ms_index_data_0` (
    `index_id` int(10) NOT NULL AUTO_INCREMENT,
    `status` tinyint(1) NOT NULL DEFAULT '0',
    `category_id` int(5) NOT NULL,
    `add_time` int(10) NOT NULL,
    `update_time` int(10) NOT NULL,
    `user_name` varchar(100) NOT NULL,
    `question_subject` varchar(255) NOT NULL,
    `question_detail` text,
    `repeat` varchar(100) NOT NULL,
    PRIMARY KEY (`index_id`),
    UNIQUE KEY `repeat` (`repeat`),
    KEY `status` (`status`),
    KEY `category_id` (`category_id`),
    KEY `update_time` (`update_time`),
    KEY `user_name` (`user_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `ms_index` (
    `index_id` int(10) NOT NULL AUTO_INCREMENT,
    `status` tinyint(1) NOT NULL DEFAULT '0',
    `category_id` int(5) NOT NULL,
    `add_time` int(10) NOT NULL,
    `update_time` int(10) NOT NULL,
    `user_name` varchar(100) NOT NULL,
    `question_subject` varchar(255) NOT NULL,
    `question_detail` text,
    `repeat` varchar(100) NOT NULL,
    PRIMARY KEY (`index_id`),
    UNIQUE KEY `repeat` (`repeat`),
    KEY `status` (`status`),
    KEY `category_id` (`category_id`),
    KEY `update_time` (`update_time`),
    KEY `user_name` (`user_name`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 INSERT_METHOD=LAST UNION=(`ms_index_data_0`);

CREATE TABLE `ms_post_data_0` (
    `post_id` int(10) NOT NULL AUTO_INCREMENT,
    `index_id` int(10) NOT NULL,
    `add_time` int(10) NOT NULL,
    `is_best` tinyint(1) NOT NULL DEFAULT '0',
    `user_name` varchar(100) NOT NULL,
    `question_detail` text NOT NULL,
    `repeat` varchar(100) NOT NULL,
    PRIMARY KEY (`post_id`),
    UNIQUE KEY `repeat` (`repeat`),
    KEY `add_time` (`add_time`),
    KEY `index_id` (`index_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `ms_post` (
    `post_id` int(10) NOT NULL AUTO_INCREMENT,
    `index_id` int(10) NOT NULL,
    `add_time` int(10) NOT NULL,
    `is_best` tinyint(1) NOT NULL DEFAULT '0',
    `user_name` varchar(100) NOT NULL,
    `question_detail` text NOT NULL,
    `repeat` varchar(100) NOT NULL,
    PRIMARY KEY (`post_id`),
    UNIQUE KEY `repeat` (`repeat`),
    KEY `add_time` (`add_time`),
    KEY `index_id` (`index_id`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 INSERT_METHOD=LAST UNION=(`ms_post_data_0`);
如果到时候新增加表,只需要ALETR一下即可:
ALTER TABLE `ms_index` ENGINE=MRG_MyISAM UNION=(`ms_index_data_0`,`ms_index_data_1`) INSERT_METHOD=LAST;  

Centos流量分析工具iftop & nload

孤魂 发表了文章 • 0 个评论 • 866 次浏览 • 2016-03-09 11:58 • 来自相关话题

最近两天网站掉包严重,博客使用的小鸟云的服务器,后台不可以查看自己的网站流量统计,这点赶Linode差远了,最近几天,PING和Linode日本的服务器有得一比,发工单,客服告诉我流量几乎占满,所以只能自己分析网络占用情况。
服务器使用Centos,这里给大家介绍两个工具,非常好用。一个是iftop,另外一个是nload,iftop一般都可以直接使用yum安装:yum install iftop
yum install nload
iftop可以查看到访客的IP情况,nload可以分析到网卡的实时流量,如果有多网卡的,使用PageDown按钮切换。结果一看,全是googlebot,好强大,好喜欢! 查看全部
最近两天网站掉包严重,博客使用的小鸟云的服务器,后台不可以查看自己的网站流量统计,这点赶Linode差远了,最近几天,PING和Linode日本的服务器有得一比,发工单,客服告诉我流量几乎占满,所以只能自己分析网络占用情况。
服务器使用Centos,这里给大家介绍两个工具,非常好用。一个是iftop,另外一个是nload,iftop一般都可以直接使用yum安装:
yum install iftop
yum install nload
iftop可以查看到访客的IP情况,nload可以分析到网卡的实时流量,如果有多网卡的,使用PageDown按钮切换。结果一看,全是googlebot,好强大,好喜欢!

祝我和我的小伙伴们新年大吉

孤魂 发表了文章 • 0 个评论 • 892 次浏览 • 2016-02-14 21:05 • 来自相关话题

农历新年假期已过,过年这几天玩得不错,从明天起,正式回归工作状态,祝大家在新的一年里一帆风顺,心想事成……
农历新年假期已过,过年这几天玩得不错,从明天起,正式回归工作状态,祝大家在新的一年里一帆风顺,心想事成……

小鸟云的服务器怎么样?答曰:售后不敢恭维!

孤魂 发表了文章 • 0 个评论 • 1324 次浏览 • 2016-01-11 20:02 • 来自相关话题

阿里云的服务器到期了,前段时间偶然发现小鸟云,那时候做活动,买多少送多少,算下来,相当于阿里云的六七折,还是比较划算的,在购买前,有专属客服,因为尝试不同的配置,下单了未付款,他们的专属客服还打电话过来:“喂,你好,王先生吗,我在后台看到您有一个订单没有支付成功,请问是遇到什么问题了吗……”很是热情得没话说。
 
这几天,服务器遇到问题,就是在请求特写的字符串的时候,服务器那边会掉包,我猜想是他们防火墙的问题。比如说我请求:https://www.kalvin.cn/?a=b是成功的,请我请求的数据包含特定的urlencode字符串的时候,就会直接连接不上服务器。因为小鸟云没有实时的在线技术支持,只能发工单解决。这个工单就是我吐槽的内容了。

2016-1-5日我发第一个工单,内容如下:

工单编号:005188
------------------------
标题:有可能是防火墙问题导致POST提交数据失败
------------------------
我:我的博客 www.kalvin.cn,访问一切正常,但编辑文章或发布文章的时候就有问题了,F12调试提示网络连接问题。请检查我的防火墙设置,也就是说网站GET请求正常,POST提交不了数据。
------------------------
我:发现向服务器提交这样的数据,就会被阻止??? message=%E6%9C%80%E8%BF%91%E8%87%AA%E5%B7%B1%E7%9A%84%E9%A1%B9%E7%9B%AE%E9%87%87%E9%9B%86%EF%BC%8C%E4%B8%80%E7%9B%B4%E5%9C%A8%E4%BD%BF%E7%94%A8PHP+CURL%E7%9A%84%E5%8A%9F%E8%83%BD%E5%9C%A8%E8%BF%9B%E8%A1%8C%E9%87%87%E9%9B%86%EF%BC%8C%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%89%A7%E8%A1%8CPHP%E6%96%87%E4%BB%B6%EF%BC%8C%E8%A7%A3%E5%86%B3%E4%BA%86PHP%E8%BF%90%E8%A1%8C%E8%B6%85%E6%97%B6%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%8C%E4%BD%86%E5%8F%AA%E8%83%BD%E5%8D%95%E7%BA%BF%E7%A8%8B%E9%87%87%E9%9B%86%E3%80%82%E6%9C%80%E8%BF%91%E6%89%BE%E5%88%B0%E4%BA%86%E4%BD%BF%E7%94%A8pthreads%E5%AE%9E%E7%8E%B0%E5%A4%9A%E7%BA%BF%E7%A8%8B%E9%87%87%E9%9B%86%E7%9A%84%E6%96%B9%E6%B3%95%EF%BC%8C%E8%BF%99%E9%87%8C%E5%AE%89%E8%A3%85%E6%96%B9%E6%B3%95%E5%B0%B1%E4%B8%8D%E5%9C%A8%E8%AF%A6%E7%BB%86%E8%AF%B4%E6%98%8E%E4%BA%86%EF%BC%8C%E5%A6%82%E6%9E%9C%E4%BD%A0%E4%BD%BF%E7%94%A8Phpstudy%E7%9A%84%E5%A5%97%E4%BB%B6%E7%9A%84%E8%AF%9D%EF%BC%8C%E9%9C%80%E8%A6%81%E6%B3%A8%E6%84%8F%E5%88%B0%E4%B8%A4%E7%82%B9%EF%BC%8C%E4%B8%80%E6%98%AF%E9%80%89%E6%8B%A9%E5%A5%BD%E6%AD%A3%E7%A1%AE%E7%9A%84%E7%89%88%E6%9C%AC%EF%BC%8Cphp+5.x%E5%8F%AA%E8%83%BD%E4%BD%BF%E7%94%A82.09%E4%BB%A5%E4%B8%8B%E7%9A%84%E7%89%88%E6%9C%AC%EF%BC%9B%E5%85%B6%E6%AC%A1%E6%98%AF%E9%9C%80%E8%A6%81%E5%B0%86php_pthreads.dll%E6%94%BE%E5%9C%A8ext%E7%9B%AE%E5%BD%95%EF%BC%8C%E7%84%B6%E5%90%8E%E5%9C%A8php.ini%E6%96%87%E4%BB%B6%E4%B8%AD%E5%8A%A0%E8%BD%BD%E6%AD%A4%E6%96%87%E4%BB%B6%EF%BC%9B%E6%9C%80%E5%90%8E%E9%9C%80%E8%A6%81%E5%B0%86pthreadVC2.dll%E5%88%86%E5%88%AB%E5%A4%8D%E5%88%B6%E5%88%B0.%2FPHPa%2F%E7%9B%AE%E5%BD%95%E5%92%8C.%2FApache%2Fbin%2F%E7%9B%AE%E5%BD%95%E3%80%82%E4%B8%8B%E9%9D%A2%E5%88%86%E4%BA%AB%E4%B8%80%E4%B8%8B%E6%88%91%E7%9A%84%E9%87%87%E9%9B%86%E6%BA%90%E7%A0%81%E3%80%82%5Bcode%5D%3C%3Fphp%0Aset_time_limit(0)%3B%0A%0Aclass+new_thread_run+extends+Thread%0A%7B%0A++++public+%24url%3B%0A++++public+%24data%3B%0A++++public+function+__construct(%24url)%0A++++%7B%0A++++++++%24this-%3Eurl+%3D+%24url%3B%0A++++%7D%0A++++public+function+run()%0A++++%7B%0A++++++++if+((%24url+%3D+%24this-%3Eurl))+%7B%0A++++++++++++%24this-%3Edata+%3D+model_http_curl_get(%24url)%3B%0A++++++++%7D%0A++++%7D%0A%7D%0Afunction+model_thread_result_get(%24urls_array)%0A%7B%0A++++if+(class_exists('Thread'))+%7B%0A++++++++foreach+(%24urls_array+as+%24key+%3D%3E+%24value)+%7B%0A++++++++++++%24thread_array%5B%24key%5D+%3D+new+new_thread_run(%24value)%3B%0A++++++++++++%24thread_array%5B%24key%5D-%3Estart()%3B%0A++++++++%7D%0A++++++++foreach+(%24thread_array+as+%24thread_array_key+%3D%3E+%24thread_array_value)+%7B%0A++++++++++++while+(%24thread_array%5B%24thread_array_key%5D-%3EisRunning())+%7B%0A++++++++++++++++usleep(10)%3B%0A++++++++++++%7D%0A++++++++++++if+(%24thread_array%5B%24thread_array_key%5D-%3Ejoin())+%7B%0A++++++++++++++++%24variable_data%5B%24thread_array_key%5D+%3D+%24thread_array%5B%24thread_array_key%5D-%3Edata%3B%0A++++++++++++%7D%0A++++++++%7D%0A++++%7D+else+%7B%0A++++++++foreach+(%24urls_array+as+%24key+%3D%3E+%24value)+%7B%0A++++++++++++%24variable_data%5B%24key%5D+%3D+model_http_curl_get(%24value)%3B%0A++++++++%7D%0A++++%7D%0A++++return+%24variable_data%3B%0A%7D%0Afunction+model_http_curl_get(%24url)%0A%7B%0A++++%24userAgent+%3D+'Mozilla%2F4.0+(compatible%3B+MSIE+7.0%3B+Windows+NT+5.2)'%3B%0A++++%24curl+%3D+curl_init()%3B%0A++++curl_setopt(%24curl%2C+CURLOPT_URL%2C+%24url)%3B%0A++++curl_setopt(%24curl%2C+CURLOPT_RETURNTRANSFER%2C+1)%3B%0A++++curl_setopt(%24curl%2C+CURLOPT_TIMEOUT%2C+20)%3B%0A++++curl_setopt(%24curl%2C+CURLOPT_USERAGENT%2C+%24userAgent)%3B%0A++++curl_setopt(%24curl%2C+CURLOPT_SSL_VERIFYPEER%2C+false)%3B%0A++++curl_setopt(%24curl%2C+CURLOPT_SSL_VERIFYHOST%2C+false)%3B%0A++++%24result+%3D+curl_exec(%24curl)%3B%0A++++curl_close(%24curl)%3B%0A++++return+%24result%3B%0A%7D%0A%0A%2F%2F%E5%AE%9E%E9%99%85%E4%BE%8B%E5%AD%90%0Afor+(%24i+%3D+0%3B+%24i+%3C+50%3B+%24i%2B%2B)+%7B%0A++++%24urls_array+%3D+%22http%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3D%22+.+mt_rand(10000%2C+20000)%3B%0A%7D%0A%24t+%3D+microtime(true)%3B%0A%24result+%3D+model_thread_result_get(%24urls_array)%3B%0A%24e+%3D+microtime(true)%3B%0Aecho+%22%E5%A4%9A%E7%BA%BF%E7%A8%8B%EF%BC%9A%22+.+(%24e+-+%24t)+.+%22%5Cn%22%3B%0A%3F%3E%5B%2Fcode%5D%E5%8F%82%E8%80%83%E9%93%BE%E6%8E%A5%EF%BC%9A%0A%5Blist%5D%0A%5B*%5D%5Burl%5Dhttp%3A%2F%2Fwww.thinkphp.cn%2Ftopic%2F22676.html%5B%2Furl%5D%5B%2F*%5D%0A%5B*%5D%5Burl%5Dhttp%3A%2F%2Fzyan.cc%2Fpthreads%2F%5B%2Furl%5D%5B%2F*%5D%0A%5B%2Flist%5D%0A&topics%5B%5D=php&topics%5B%5D=%E9%87%87%E9%9B%86&_post_type=ajax
------------------------
客服:您好!我们不会现在用户的数据的!
------------------------
客服:您好,该工单已经标记为完成,如有其它问题您可以提交新工单!小鸟云客服竭诚为您服务,祝您生活愉快 ~

愉快你妹呀,问题没有给我解决,随意把工单给我关了,只能重新发一个工单。

工单编号:005270
------------------------
标题:问题没有解决,不要随意关闭我的工单
------------------------
我:http://42.200.34.216/t.php%3Fm ... %25E7

无论是GET还是POST,你试试,访问这个网址
------------------------
我:我的本地IP:14.107.110.233
------------------------
客服:您好,请明确您的问题?是服务器问题,还是您网站本身的问题、
------------------------
我:问题还是没有解决,请加我QQ511566576我给你重现问题
------------------------
客服:工号 10027您好,请问您的问题是什么?如果是代码问题,我们因为没有相关人员,无法为您处理。我们只能处理一些基本的环境问题。
我:不是代码问题,是你们的网络连通问题,我请求一些数据的时候,你们服务器接收不到我的数据
------------------------
我:问题重现视频:http://pan.baidu.com/s/1mhqZDhA
------------------------
客服:您好,建议您使用iperf进行tcp丢包测试。
------------------------
我:我普通GET是完全OK的,POST或请求数据中包含某些内容的时候,才连接不到服务器,在说了,我已经确定 我的服务器OK,是你们网络连通的问题,这个问题不在我这里,不是应该你们找原因解决吗?
------------------------
客服:如果是包含某些内容的话,建议您使用加密协议测试。
------------------------
我:你叫我怎么测试,我PING是通的,服务器连通没有问题,服务器检测没问题,代理请求网址是OK的,这不是我的问题了,你能检查一下你们防火墙吗?
------------------------
客服:您的机房位于香港,中间是要经过GFW的。所以您说代理请求网址没问题,那就可能是GFW过滤了某些东西。
------------------------
我:我发布的内容是啥?比如说https://www.kalvin.cn/article/1这一篇文章,POST提交就会有问题,这个是GFW问题?同样的内容,我发布到Linode和阿里云都是OK的,这里面应该没有违禁关键词吧。更何况我的博客是https的,请求的数据是加密了的,gfw怎么过滤?

至此问题还是没有得以解决,不得不说小鸟云的售后服务非常差。此文将保持更新直到问题解决或者更换服务器!
update:问题解决了,但是我也不知道是怎么解决的,反正过几天后就好了,估计是他们防火墙规则的问题,只是估计。 查看全部
阿里云的服务器到期了,前段时间偶然发现小鸟云,那时候做活动,买多少送多少,算下来,相当于阿里云的六七折,还是比较划算的,在购买前,有专属客服,因为尝试不同的配置,下单了未付款,他们的专属客服还打电话过来:“喂,你好,王先生吗,我在后台看到您有一个订单没有支付成功,请问是遇到什么问题了吗……”很是热情得没话说。
 
这几天,服务器遇到问题,就是在请求特写的字符串的时候,服务器那边会掉包,我猜想是他们防火墙的问题。比如说我请求:https://www.kalvin.cn/?a=b是成功的,请我请求的数据包含特定的urlencode字符串的时候,就会直接连接不上服务器。因为小鸟云没有实时的在线技术支持,只能发工单解决。这个工单就是我吐槽的内容了。

2016-1-5日我发第一个工单,内容如下:


工单编号:005188
------------------------
标题:有可能是防火墙问题导致POST提交数据失败
------------------------
我:我的博客 www.kalvin.cn,访问一切正常,但编辑文章或发布文章的时候就有问题了,F12调试提示网络连接问题。请检查我的防火墙设置,也就是说网站GET请求正常,POST提交不了数据。
------------------------
我:发现向服务器提交这样的数据,就会被阻止??? message=%E6%9C%80%E8%BF%91%E8%87%AA%E5%B7%B1%E7%9A%84%E9%A1%B9%E7%9B%AE%E9%87%87%E9%9B%86%EF%BC%8C%E4%B8%80%E7%9B%B4%E5%9C%A8%E4%BD%BF%E7%94%A8PHP+CURL%E7%9A%84%E5%8A%9F%E8%83%BD%E5%9C%A8%E8%BF%9B%E8%A1%8C%E9%87%87%E9%9B%86%EF%BC%8C%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%89%A7%E8%A1%8CPHP%E6%96%87%E4%BB%B6%EF%BC%8C%E8%A7%A3%E5%86%B3%E4%BA%86PHP%E8%BF%90%E8%A1%8C%E8%B6%85%E6%97%B6%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%8C%E4%BD%86%E5%8F%AA%E8%83%BD%E5%8D%95%E7%BA%BF%E7%A8%8B%E9%87%87%E9%9B%86%E3%80%82%E6%9C%80%E8%BF%91%E6%89%BE%E5%88%B0%E4%BA%86%E4%BD%BF%E7%94%A8pthreads%E5%AE%9E%E7%8E%B0%E5%A4%9A%E7%BA%BF%E7%A8%8B%E9%87%87%E9%9B%86%E7%9A%84%E6%96%B9%E6%B3%95%EF%BC%8C%E8%BF%99%E9%87%8C%E5%AE%89%E8%A3%85%E6%96%B9%E6%B3%95%E5%B0%B1%E4%B8%8D%E5%9C%A8%E8%AF%A6%E7%BB%86%E8%AF%B4%E6%98%8E%E4%BA%86%EF%BC%8C%E5%A6%82%E6%9E%9C%E4%BD%A0%E4%BD%BF%E7%94%A8Phpstudy%E7%9A%84%E5%A5%97%E4%BB%B6%E7%9A%84%E8%AF%9D%EF%BC%8C%E9%9C%80%E8%A6%81%E6%B3%A8%E6%84%8F%E5%88%B0%E4%B8%A4%E7%82%B9%EF%BC%8C%E4%B8%80%E6%98%AF%E9%80%89%E6%8B%A9%E5%A5%BD%E6%AD%A3%E7%A1%AE%E7%9A%84%E7%89%88%E6%9C%AC%EF%BC%8Cphp+5.x%E5%8F%AA%E8%83%BD%E4%BD%BF%E7%94%A82.09%E4%BB%A5%E4%B8%8B%E7%9A%84%E7%89%88%E6%9C%AC%EF%BC%9B%E5%85%B6%E6%AC%A1%E6%98%AF%E9%9C%80%E8%A6%81%E5%B0%86php_pthreads.dll%E6%94%BE%E5%9C%A8ext%E7%9B%AE%E5%BD%95%EF%BC%8C%E7%84%B6%E5%90%8E%E5%9C%A8php.ini%E6%96%87%E4%BB%B6%E4%B8%AD%E5%8A%A0%E8%BD%BD%E6%AD%A4%E6%96%87%E4%BB%B6%EF%BC%9B%E6%9C%80%E5%90%8E%E9%9C%80%E8%A6%81%E5%B0%86pthreadVC2.dll%E5%88%86%E5%88%AB%E5%A4%8D%E5%88%B6%E5%88%B0.%2FPHPa%2F%E7%9B%AE%E5%BD%95%E5%92%8C.%2FApache%2Fbin%2F%E7%9B%AE%E5%BD%95%E3%80%82%E4%B8%8B%E9%9D%A2%E5%88%86%E4%BA%AB%E4%B8%80%E4%B8%8B%E6%88%91%E7%9A%84%E9%87%87%E9%9B%86%E6%BA%90%E7%A0%81%E3%80%82%5Bcode%5D%3C%3Fphp%0Aset_time_limit(0)%3B%0A%0Aclass+new_thread_run+extends+Thread%0A%7B%0A++++public+%24url%3B%0A++++public+%24data%3B%0A++++public+function+__construct(%24url)%0A++++%7B%0A++++++++%24this-%3Eurl+%3D+%24url%3B%0A++++%7D%0A++++public+function+run()%0A++++%7B%0A++++++++if+((%24url+%3D+%24this-%3Eurl))+%7B%0A++++++++++++%24this-%3Edata+%3D+model_http_curl_get(%24url)%3B%0A++++++++%7D%0A++++%7D%0A%7D%0Afunction+model_thread_result_get(%24urls_array)%0A%7B%0A++++if+(class_exists('Thread'))+%7B%0A++++++++foreach+(%24urls_array+as+%24key+%3D%3E+%24value)+%7B%0A++++++++++++%24thread_array%5B%24key%5D+%3D+new+new_thread_run(%24value)%3B%0A++++++++++++%24thread_array%5B%24key%5D-%3Estart()%3B%0A++++++++%7D%0A++++++++foreach+(%24thread_array+as+%24thread_array_key+%3D%3E+%24thread_array_value)+%7B%0A++++++++++++while+(%24thread_array%5B%24thread_array_key%5D-%3EisRunning())+%7B%0A++++++++++++++++usleep(10)%3B%0A++++++++++++%7D%0A++++++++++++if+(%24thread_array%5B%24thread_array_key%5D-%3Ejoin())+%7B%0A++++++++++++++++%24variable_data%5B%24thread_array_key%5D+%3D+%24thread_array%5B%24thread_array_key%5D-%3Edata%3B%0A++++++++++++%7D%0A++++++++%7D%0A++++%7D+else+%7B%0A++++++++foreach+(%24urls_array+as+%24key+%3D%3E+%24value)+%7B%0A++++++++++++%24variable_data%5B%24key%5D+%3D+model_http_curl_get(%24value)%3B%0A++++++++%7D%0A++++%7D%0A++++return+%24variable_data%3B%0A%7D%0Afunction+model_http_curl_get(%24url)%0A%7B%0A++++%24userAgent+%3D+'Mozilla%2F4.0+(compatible%3B+MSIE+7.0%3B+Windows+NT+5.2)'%3B%0A++++%24curl+%3D+curl_init()%3B%0A++++curl_setopt(%24curl%2C+CURLOPT_URL%2C+%24url)%3B%0A++++curl_setopt(%24curl%2C+CURLOPT_RETURNTRANSFER%2C+1)%3B%0A++++curl_setopt(%24curl%2C+CURLOPT_TIMEOUT%2C+20)%3B%0A++++curl_setopt(%24curl%2C+CURLOPT_USERAGENT%2C+%24userAgent)%3B%0A++++curl_setopt(%24curl%2C+CURLOPT_SSL_VERIFYPEER%2C+false)%3B%0A++++curl_setopt(%24curl%2C+CURLOPT_SSL_VERIFYHOST%2C+false)%3B%0A++++%24result+%3D+curl_exec(%24curl)%3B%0A++++curl_close(%24curl)%3B%0A++++return+%24result%3B%0A%7D%0A%0A%2F%2F%E5%AE%9E%E9%99%85%E4%BE%8B%E5%AD%90%0Afor+(%24i+%3D+0%3B+%24i+%3C+50%3B+%24i%2B%2B)+%7B%0A++++%24urls_array+%3D+%22http%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3D%22+.+mt_rand(10000%2C+20000)%3B%0A%7D%0A%24t+%3D+microtime(true)%3B%0A%24result+%3D+model_thread_result_get(%24urls_array)%3B%0A%24e+%3D+microtime(true)%3B%0Aecho+%22%E5%A4%9A%E7%BA%BF%E7%A8%8B%EF%BC%9A%22+.+(%24e+-+%24t)+.+%22%5Cn%22%3B%0A%3F%3E%5B%2Fcode%5D%E5%8F%82%E8%80%83%E9%93%BE%E6%8E%A5%EF%BC%9A%0A%5Blist%5D%0A%5B*%5D%5Burl%5Dhttp%3A%2F%2Fwww.thinkphp.cn%2Ftopic%2F22676.html%5B%2Furl%5D%5B%2F*%5D%0A%5B*%5D%5Burl%5Dhttp%3A%2F%2Fzyan.cc%2Fpthreads%2F%5B%2Furl%5D%5B%2F*%5D%0A%5B%2Flist%5D%0A&topics%5B%5D=php&topics%5B%5D=%E9%87%87%E9%9B%86&_post_type=ajax
------------------------
客服:您好!我们不会现在用户的数据的!
------------------------
客服:您好,该工单已经标记为完成,如有其它问题您可以提交新工单!小鸟云客服竭诚为您服务,祝您生活愉快 ~


愉快你妹呀,问题没有给我解决,随意把工单给我关了,只能重新发一个工单。


工单编号:005270
------------------------
标题:问题没有解决,不要随意关闭我的工单
------------------------
我:http://42.200.34.216/t.php%3Fm ... %25E7

无论是GET还是POST,你试试,访问这个网址
------------------------
我:我的本地IP:14.107.110.233
------------------------
客服:您好,请明确您的问题?是服务器问题,还是您网站本身的问题、
------------------------
我:问题还是没有解决,请加我QQ511566576我给你重现问题
------------------------
客服:工号 10027您好,请问您的问题是什么?如果是代码问题,我们因为没有相关人员,无法为您处理。我们只能处理一些基本的环境问题。
我:不是代码问题,是你们的网络连通问题,我请求一些数据的时候,你们服务器接收不到我的数据
------------------------
我:问题重现视频:http://pan.baidu.com/s/1mhqZDhA
------------------------
客服:您好,建议您使用iperf进行tcp丢包测试。
------------------------
我:我普通GET是完全OK的,POST或请求数据中包含某些内容的时候,才连接不到服务器,在说了,我已经确定 我的服务器OK,是你们网络连通的问题,这个问题不在我这里,不是应该你们找原因解决吗?
------------------------
客服:如果是包含某些内容的话,建议您使用加密协议测试。
------------------------
我:你叫我怎么测试,我PING是通的,服务器连通没有问题,服务器检测没问题,代理请求网址是OK的,这不是我的问题了,你能检查一下你们防火墙吗?
------------------------
客服:您的机房位于香港,中间是要经过GFW的。所以您说代理请求网址没问题,那就可能是GFW过滤了某些东西。
------------------------
我:我发布的内容是啥?比如说https://www.kalvin.cn/article/1这一篇文章,POST提交就会有问题,这个是GFW问题?同样的内容,我发布到Linode和阿里云都是OK的,这里面应该没有违禁关键词吧。更何况我的博客是https的,请求的数据是加密了的,gfw怎么过滤?


至此问题还是没有得以解决,不得不说小鸟云的售后服务非常差。此文将保持更新直到问题解决或者更换服务器!
update:问题解决了,但是我也不知道是怎么解决的,反正过几天后就好了,估计是他们防火墙规则的问题,只是估计。

网站启用https访问

孤魂 发表了文章 • 0 个评论 • 1232 次浏览 • 2016-01-11 16:10 • 来自相关话题

今天在沃通申请了免费两年的ssl证书,申请比较简单,就不写教程了,申请地址:https://buy.wosign.com/freessl.html

在配置Nginx的时候,学到了一点东西,就是直接让http访问强制转向到https,在conf文件中,加入以下内容即可,试试本文地址:http://www.kalvin.cn/article/4if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
nginx配置ssllisten 443;
ssl on;
ssl_certificate /root/sslcert/???.crt;
ssl_certificate_key /root/sslcert/???.key; 查看全部
今天在沃通申请了免费两年的ssl证书,申请比较简单,就不写教程了,申请地址:https://buy.wosign.com/freessl.html

在配置Nginx的时候,学到了一点东西,就是直接让http访问强制转向到https,在conf文件中,加入以下内容即可,试试本文地址:http://www.kalvin.cn/article/4
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}

nginx配置ssl
listen 443;
ssl on;
ssl_certificate /root/sslcert/???.crt;
ssl_certificate_key /root/sslcert/???.key;

再见2015,2016哥欢迎你

孤魂 发表了文章 • 0 个评论 • 1250 次浏览 • 2015-12-31 14:06 • 来自相关话题

今天,2015年的最后一天,回想这过去的一年,也可以稍微做做总结了。2015是比较成功的一年,提前一个月完成了2015年前自己心理既定的目标,在个人能力方面得得到了一定的发展;家庭和睦,老少健康,幸福完美的一年。
 
2016年来了,根据身边所见所闻,然后前几天看了一篇比较权威的报告,个人对明年的经济环境并不是很看好,做为普通公民,一般情况下不会注意到大的经济环境对自己的影响,但是我已经体会到了这个关系的厉害性,所以2016年个人发展目标不敢期望太高,但目标不可能是停止不前,我们是现实派,所以目前将既定目标定为今年的1.2倍即可。俗话说知足常乐,我发现我已经体会到这句话的含意了;虽然成就一般,但对于我个人来说,我的人生大起大落也不止那么一两次了,在失败中获得了教训,在发展中得到了成长,期待2016年跟今年一样,大家都开开心心的!
 
补充:对了,2016年,大家一起快乐的生猴子吧:) 查看全部
今天,2015年的最后一天,回想这过去的一年,也可以稍微做做总结了。2015是比较成功的一年,提前一个月完成了2015年前自己心理既定的目标,在个人能力方面得得到了一定的发展;家庭和睦,老少健康,幸福完美的一年。
 
2016年来了,根据身边所见所闻,然后前几天看了一篇比较权威的报告,个人对明年的经济环境并不是很看好,做为普通公民,一般情况下不会注意到大的经济环境对自己的影响,但是我已经体会到了这个关系的厉害性,所以2016年个人发展目标不敢期望太高,但目标不可能是停止不前,我们是现实派,所以目前将既定目标定为今年的1.2倍即可。俗话说知足常乐,我发现我已经体会到这句话的含意了;虽然成就一般,但对于我个人来说,我的人生大起大落也不止那么一两次了,在失败中获得了教训,在发展中得到了成长,期待2016年跟今年一样,大家都开开心心的!
 
补充:对了,2016年,大家一起快乐的生猴子吧:)

PHP通过pthreads扩展实现真正的多线程采集

孤魂 发表了文章 • 0 个评论 • 1244 次浏览 • 2015-12-25 09:11 • 来自相关话题

最近自己的项目采集,一直在使用PHP CURL的功能在进行采集,使用命令行执行PHP文件,解决了PHP运行超时的问题,但只能单线程采集。最近找到了使用pthreads实现多线程采集的方法,这里安装方法就不在详细说明了,如果你使用Phpstudy的套件的话,需要注意到两点,一是选择好正确的版本,php 5.x只能使用2.09以下的版本;其次是需要将php_pthreads.dll放在ext目录,然后在php.ini文件中加载此文件;最后需要将pthreadVC2.dll分别复制到./PHPa/目录和./Apache/bin/目录。下面分享一下我的采集源码。<?php
set_time_limit(0);

class new_thread_run extends Thread
{
public $url;
public $data;
public function __construct($url)
{
$this->url = $url;
}
public function run()
{
if (($url = $this->url)) {
$this->data = model_http_curl_get($url);
}
}
}
function model_thread_result_get($urls_array)
{
if (class_exists('Thread')) {
foreach ($urls_array as $key => $value) {
$thread_array[$key] = new new_thread_run($value);
$thread_array[$key]->start();
}
foreach ($thread_array as $thread_array_key => $thread_array_value) {
while ($thread_array[$thread_array_key]->isRunning()) {
usleep(10);
}
if ($thread_array[$thread_array_key]->join()) {
$variable_data[$thread_array_key] = $thread_array[$thread_array_key]->data;
}
}
} else {
foreach ($urls_array as $key => $value) {
$variable_data[$key] = model_http_curl_get($value);
}
}
return $variable_data;
}
function model_http_curl_get($url)
{
$userAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 20);
curl_setopt($curl, CURLOPT_USERAGENT, $userAgent);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
$result = curl_exec($curl);
curl_close($curl);
return $result;
}

//实际例子
for ($i = 0; $i < 50; $i++) {
$urls_array = "http://www.baidu.com/s?wd=" . mt_rand(10000, 20000);
}
$t = microtime(true);
$result = model_thread_result_get($urls_array);
$e = microtime(true);
echo "多线程:" . ($e - $t) . "\n";
?>参考链接:
http://www.thinkphp.cn/topic/22676.htmlhttp://zyan.cc/pthreads/ 查看全部
最近自己的项目采集,一直在使用PHP CURL的功能在进行采集,使用命令行执行PHP文件,解决了PHP运行超时的问题,但只能单线程采集。最近找到了使用pthreads实现多线程采集的方法,这里安装方法就不在详细说明了,如果你使用Phpstudy的套件的话,需要注意到两点,一是选择好正确的版本,php 5.x只能使用2.09以下的版本;其次是需要将php_pthreads.dll放在ext目录,然后在php.ini文件中加载此文件;最后需要将pthreadVC2.dll分别复制到./PHPa/目录和./Apache/bin/目录。下面分享一下我的采集源码。
<?php
set_time_limit(0);

class new_thread_run extends Thread
{
public $url;
public $data;
public function __construct($url)
{
$this->url = $url;
}
public function run()
{
if (($url = $this->url)) {
$this->data = model_http_curl_get($url);
}
}
}
function model_thread_result_get($urls_array)
{
if (class_exists('Thread')) {
foreach ($urls_array as $key => $value) {
$thread_array[$key] = new new_thread_run($value);
$thread_array[$key]->start();
}
foreach ($thread_array as $thread_array_key => $thread_array_value) {
while ($thread_array[$thread_array_key]->isRunning()) {
usleep(10);
}
if ($thread_array[$thread_array_key]->join()) {
$variable_data[$thread_array_key] = $thread_array[$thread_array_key]->data;
}
}
} else {
foreach ($urls_array as $key => $value) {
$variable_data[$key] = model_http_curl_get($value);
}
}
return $variable_data;
}
function model_http_curl_get($url)
{
$userAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 20);
curl_setopt($curl, CURLOPT_USERAGENT, $userAgent);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
$result = curl_exec($curl);
curl_close($curl);
return $result;
}

//实际例子
for ($i = 0; $i < 50; $i++) {
$urls_array = "http://www.baidu.com/s?wd=" . mt_rand(10000, 20000);
}
$t = microtime(true);
$result = model_thread_result_get($urls_array);
$e = microtime(true);
echo "多线程:" . ($e - $t) . "\n";
?>
参考链接: