公司需要将外网接口全部改为https方式,保证客户端数据传输的安全。并且将客户端连接改为长连接,这样能同时保证传输效率。客户端是自己的代码,所以使用自己的签名就行。
https自签名步骤:
1 | openssl genrsa -des3 -out server.orig.key 2048 #生成密钥 |
证书签名可选配置(可以不选,这里列出只是备注下)
1 | [req] |
nginx 配置:
1 | listen 443 ssl; |
一切ok。客户端长连接略过。强烈推荐python urllib3模块
公司需要将外网接口全部改为https方式,保证客户端数据传输的安全。并且将客户端连接改为长连接,这样能同时保证传输效率。客户端是自己的代码,所以使用自己的签名就行。
1 | openssl genrsa -des3 -out server.orig.key 2048 #生成密钥 |
证书签名可选配置(可以不选,这里列出只是备注下)
1 | [req] |
nginx 配置:
1 | listen 443 ssl; |
一切ok。客户端长连接略过。强烈推荐python urllib3模块
公司服务器需要监控网站页面请求。
使用nginx的ngx_req_status模块刚好能满足需求。
请求结果如下:
1 | zone_name key max_active max_bw traffic requests active bandwidth |
可以显示每个url pv, 活跃连接数等等。
安装方法如下:
1 | wget http://nginx.org/download/nginx-1.8.0.tar.gz |
nginx配置如下:
http配置:
1 | req_status_zone server_name $server_name 256k; |
server配置:
1 | location /req-status { |
网站升级为https
最近比较流行https,我也准备吧自己博客升级为https。
申请证书参考 http://www.freehao123.com/nginx-startssl/
StartSSL 网站提供免费的证书申请。
将startssl提供的.key文件和.crt文件拷贝到服务器
.key文件每次nginx启动时候需要输入密码,因此需要先去掉.key文件的密码。方法如下:
1 | openssl rsa -in zhangwenjin.key -out zhangwenjin.key.unsecure |
nginx 配置:
1 | listen 443; |
访问 https://blog.zhangwenjin.com 即可
获取startssl根证书
1 | wget -O - https://www.startssl.com/certs/ca.pem https://www.startssl.com/certs/sub.class1.server.ca.pem | tee -a ca-certs.pem> /dev/null |
nginx 配置
1 | ssl_stapling on; |
Phalcon 是开源、全功能栈、使用C 扩展编写、针对高性能优化的PHP 5 框架
1 | > git clone --depth=1 git://github.com/phalcon/cphalcon.git |
安裝phalcon dev tool
1 | > git clone https://github.com/phalcon/phalcon-devtools |
创建项目
1 | > phalcon project test |
本次选用raid1方案,其实就是数据互备,最大限度保障数据安全。
raid 磁盘 /dev/sdb /dev/sdc
安装raid管理软件:
1 | > yum install -y parted mdadm |
将raid磁盘设置为raid格式
1 | > fdisk /dev/sdb |
创建raid
在操作之前先来看看这个命令的参数
1 | > mdadm -C /dev/md1 -l 1 -n 2 /dev/sdb1 /dev/sdc1 |
1 | > mdadm -Evs >> /etc/mdadm.conf |
1 | > mdadm --detail /dev/md1 |
1 | > mkfs.ext4 /dev/md1 |
1 | > mkdir /data |
1 | > echo "/dev/md1 /raid1 ext4 defaults 0 0" >> /etc/fstab |
业务需要在一台机器上启动两个mysql进程。
解决方案有两种:
最终我选用方案一。
1 | > mkdir -p /opt/mysql/jira_db_4406 |
1 | > mysql_install_db --datadir=/opt/mysql/jira_db_4406 --user=mysql |
1 | $bindir/mysqld_safe --defaults-file=/opt/mysql/jira_db_4406/my.cnf --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 |
(ps:重点加–defaults-file=/opt/mysql/jira_db_4406/my.cnf –defaults-file 一定要是第一个参数)
1 | > /etc/init.d/mysql_jira start |
1 | > mysqladmin -u root password 123456 |
1 | > mysql -h 127.0.0.1 -P 4406 -u root -p |
公网服务器A(ip:121.199.x.x) centos6
内网测试服务器B(ip:10.10.1.160) centos6
网络:
公网 121.199.x.x/24
内网 10.10.1.1/24
vpn网络 10.10.16.1/24
需求:
公网服务器A需要能访问内网,因为svn服务器在内网。
vpn拨号后需要能访问到内网
方案:
vpn 服务架设在公网服务器A上(有公网ip),并分配vpn IP:10.10.16.1,
内网测试服务器B vpn拨号连接到服务器A,分配vpn ip:10.10.16.2,虚拟网卡ppp0
服务器A增加路由增加内网ip 10.10.1.1/24 路由到 10.10.16.2
内网测试服务器B增加转发规则将ppp0流量转发到内网
1 | > vim /etc/sysctl.conf |
1 | > yum install pptpd.x86_64 |
1 | > vim /etc/pptpd.conf |
1 | > vim /etc/ppp/chap-secrets |
1 | > service pptpd restart |
1 | > sudo route add -net 10.10.1.0/24 gw 10.10.16.2 dev ppp0 |
1 | > iptables -A POSTROUTING -s 10.10.16.0/24 ! -d 10.10.16.0/24 -j MASQUERADE |
1 | > yum install pptpsetup pptp |
1 | > pptpsetup --create test1 --server admin.wefit.com.cn --username vpn --password xxx --encrypt --start |
1 | > iptables -A POSTROUTING -s 10.10.16.0/24 ! -d 10.10.16.0/24 -j MASQUERADE |
1 | > iptables -I FORWARD -i ppp0 -o br0 -j ACCEPT |
ps:
如果客户端提示:
LCP: timeout sending Config-Requests
sudo modprobe nf_conntrack_pptp
服务器需要通过邮件发送统计数据。
直接通过mail命令发送容易被当垃圾邮件。所以打算找一个靠谱的邮件服务商,通过smtp发送邮件就不会被当作垃圾邮件。
mail stmp配置:
1 | vim /etc/mail.rc |
发送方式:
1 | echo "test" | mail -v -s 四川统计-`date +'%Y-%m-%d'` -c [email protected] -c [email protected] [email protected] |
测试服务器为centos7系统。
使用场景需求:
每一个开发人员有一个独立虚拟linux系统(系统要求centos6)(方便随便折腾)
虚拟系统需要独立内网ip
lxc是最优方案,对资源消耗最少,并且每台虚拟机可以共享所有资源。例如我们测试服务器有16G内存,每台虚拟机都能看到16G内存。
虚拟系统需要独立ip,需要使用桥接模式。
lxc安装:
1 | > yum install lxc.x86_64 lxc-templates.x86_64 |
guest系统安装:
查看可选的系统:
1 | > ls /usr/share/lxc/templates |
我需要的centos6, 模版中没有,选择下载系统:
1 | > lxc-create -t download -n template |
等待系统下载完成
1 | > lxc-ls |
设置桥接模式:
1 | > vim /etc/sysconfig/network-scripts/ifcfg-enp3s0f0 |
设置虚拟机配置
1 | > /var/lib/lxc/template/config |
启动
1 | > lxc-start -n template |
创建更多虚拟机
1 | > lxc-clone template test |
查看每台虚拟机使用情况
1 | > lxc-top |
ps:
虚拟机根目录:/var/lib/lxc/template/rootfs
改变虚拟机账户密码: chroot /var/lib/lxc/template/rootfs passwd
准备把Mac Mini改造为测试服务器。线上环境是Centos6, 所以测试环境也需要安装为Centos 6。Mac OSX 系统需要完全废弃。
Mac Mini使用EFI引导,只有Centos 7才支持EFI,所以考虑Mac Mini 安装Centos 7,通过lxc虚拟Centos 6
1 | wget http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1503-01.iso |
1 | hdiutil convert -format UDRW -o ~/Downloads/CentOS-7-x86_64-Minimal-1503-01.img ~/Downloads/CentOS-7-x86_64-Minimal-1503-01.iso |
正在读取CentOS-7- (Apple_ISO:0)…
…………………………………………………………………………………………………………………………………………………………………………………………………………
正在读取(Apple_Free:1)…
经过时间: 1.236s
速度:309.6M 字节/秒
节省:0.0%
插入空白U盘,查看系统u盘设备描述符:
1 | > diskutil list |
U盘为/dev/disk2,取消U盘挂载
1 | > diskutil unmountDisk /dev/disk2 |
将Centos系统写入U盘
1 | > sudo dd if=~/Downloads/CentOS-7-x86_64-Minimal-1503-01.img.dmg of=/dev/disk2 bs=1m |
取出u盘插入Mac Mini系统,开机按住 option(alt) 键(必须在出现苹果图标前按住),这时候能看到U盘系统,选择U盘启动,安装linux时候格式化硬盘全盘。
ps:
Centos 7安装lxc需要先安装EPEL源,默认的yum源没有lxc
Mac Mini需要恢复OSX系统,需要通过网络安装恢复,方法开机按 alt键,到选择界面 按cmd + r即可,非常容易