分类目录归档:work

服务器问题小记

大年29时,门店报了个问题,购买添加收货地址报错,找到问题,post数据到服务器,中文变成乱码,导致计算token和client不一致。找了很久,年前未解决。

年后第一天上班,同事们也都来上班,连调,发现本机,局域网,都是ok的,而且本地服务器也是centos,然而上传到服务器就出错,看git记录,把服务器代码回滚到1月份版本也同样报错。后来就突然灵光一闪,是不是系统语言的问题,对比本地服务器和正式,发现locale不一致,本地是zh_CN.utf8,正式环境却是en_US.utf8,然后修改vi /etc/locale.conf,加一句LANG=”zh_CN.UTF-8″,保存。编辑环境变量 vi ~/.bash_profile或者全局修改 vi /etc/profile 末尾增加export LC_ALL=”zh_CN.utf8″,然后source一下,使其生效。reboot服务器,部署好后台,nohup的输出都成中文了,测试一切正常。

细细一想,阿里云还是很坑的,应该是阿里云更新的时候修改了某些系统属性,然后出现了这种莫名其妙的错误,也算是学习了。

接着昨天来公司,要为电信开发个小程序,然后问题就是要搭建https,我这边是前后端分离,后台java服务器,中间层node服务器,还有一个基于nginx搭建的ftp服务器,要实现全站https,这样浏览器左侧才能变成secure,但是这就需要我java,ftp那块全部要修改,我只是修改了中间层,这样小程序通过中间层调用基本上能通过审核,中间层接口已经是https,过程还是记录一下。

先是在阿里云,安全-CA证书服务,申请免费证书,因为域名服务器都在阿里云,申请还是方便,通过审核后下载证书,上传对应网站的服务器上,修改 vi /nginx/conf/nginx.conf

listen 80;
listen 443 ssl;
server_name 6mi.com www.6mi.com;

rewrite ^(.*)$ https://$host$1 permanent;

ssl_certificate “xxx.pem”;
ssl_certificate_key “xxx.key”;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
ssl_prefer_server_ciphers on;

如上所述,将ssl跟在443后面,这样网站能同时支持http和https。

rewrite ^(.*)$ https://$host$1 permanent;这句是将http请求跳转到https。

后面就是基本配置了,认证文件就是服务器上的完整路径。

出了几个细节问题,6mi.com不能跳转到https,www.6mi.com则是ok的,配置了一个显式URL,也就是重定向,6mi.com的@记录跳转到https://www.6mi.com,这样就全部ok了,我记得曾经自己配置过这个的,但是想不起来为什么关闭掉了,今早同事跟我说门店管理系统访问不了,这时候我才明白,显式url会屏蔽掉端口号,6mi.com:8888不能访问但是www.6mi.com:8888则可以访问,怪不得我之前要暂停掉这条解析,然后我依旧暂停了这条解析。

对于ssl,最关键的一点是nginx,因为早先通过source code ./configure make make install 这些命令时候没带参数,默认安装没有ssl module,覆盖安装很麻烦,找到一个教程,几步就搞定了。

/usr/local/nginx/sbin/nginx -V 先查看原版本,然后重新编译要加上–prefix=/usr/local/nginx –with-http_stub_status_module。

进入nginx source code 文件夹,执行:

./configure –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module

完成后在make,生成objs文件,cp命令备份当前运行的sbin/’nginx文件,停止服务器。

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

/nginx -s stop

cp ./objs/nginx /usr/local/nginx/sbin/ 替换完成后重启服务器即可。通过-V命令查看是否替换完成。

over,这几个问题已解决,接下来要啃solr,rabbitmq等。

另外昨天发现vps日志又写满了,查看是pm2的问题,我都停了这个服务器,ghost也停了,ghost也太坑了,干脆把pm2卸载了,npm uninstall pm2 -g,刚又去ghost文件夹,ghost uninstall将整个ghost卸载了。落个清净,曾经很喜欢的ghost blog,简洁舒适,markdown语法,没有多余的功能,我就想要这样的干净写字的地方,可是新版本就越来越复杂了。