由于Memcached使用LRU(Least Recently Used)算法回收缓存,LRU算法是针对每个slab类执行,而不是针对整个Memcached,核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。最近最少使用的数据有可能被回收,这意味着有可能用户在某个时间点登录了,但又长期不在线,隔了较长一段时间之后,可能他的session已经被回收了。 当然这仅仅是一种可能性,若从可靠性来讲,使用Redis将是一种更好的选择。 可参考Memcached作者两篇文章Sessions in Memcached及Cache your sessions,还有一篇Memcached的流程图。
Redmine 是一个网页界面的项目管理与缺陷跟踪管理系统的自由及开放源代码软件工具。它集成了项目管理所需的各项功能:日历、燃尽图和甘特图以协助可视化表现项目与时间限制,问题跟踪和版本控制。此外,Redmine也可以同时处理多个项目。 Redmine是以Ruby on Rails撰写的架构,它横跨多个平台与数据库,它的设计很明显是受一些类似功能软件包的Trac所影响。
REATE DATABASE redmine CHARACTER SET utf8; CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password'; GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
还需要配置相应的数据库配置文件,先解压安装包:
1 2 3 4
tar zxf redmine-3.2.1 cd redmine-3.2.1/config/ mv database.yml.example database.yml vim database.yml
adduser elasticsearch cd /home/elasticsearch/ wget -c https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.2/elasticsearch-2.3.2.tar.gz tar -zxf elasticsearch-2.3.2.tar.gz mv elasticsearch-2.3.2 es chown elasticsearch:elasticsearch es -R su - elasticsearch -c "chmod a+x es/bin/elasticsearch" su - elasticsearch -c "./es/bin/elasticsearch"
wget https://download.elastic.co/kibana/kibana/kibana-4.5.0-linux-x64.tar.gz tar -zxf kibana-4.5.0-linux-x64.tar.gz mv kibana-4.5.0-linux-x64 kibana vim config/kibana.yml
port 443 proto tcp dev tap ca keys/ca.crt cert keys/server.crt key keys/server.key # This file should be kept secret dh keys/dh2048.pem server 10.8.0.0255.255.255.0 ifconfig-pool-persist ipp.txt push "route 192.168.0.0 255.255.0.0" ;push "dhcp-option DNS 208.67.222.222" client-to-client duplicate-cn keepalive 10120 tls-auth keys/ta.key 0# This file is secret comp-lzo persist-key persist-tun status openvpn-status.log log-append openvpn.log verb 5
配置内核和防火墙
开启路由转发
1 2
sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf sysctl -p
配置防火墙
1 2 3
iptables -I INPUT -p tcp --dport 443 -m comment --comment "openvpn" -j ACCEPT iptables -t nat -A POSTROUTING -s192.168.0.0/16 -j MASQUERADE service iptables save
配置OpenVPN服务
1 2
service openvpn start chkconfig openvpn on
客户端配置文件
创建客户端连接文件
1
vim client.ovpn
填入如下配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
client dev tap proto tcp remote 119.29.29.29443 resolv-retry infinite nobind persist-key persist-tun ca keys/ca.crt cert keys/client.crt key keys/client.key ns-cert-type server tls-auth keys/ta.key 1 comp-lzo verb 5
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'master'. fatal: The remote end hung up unexpectedly error: failed to push some refs to 'git@server:/path/to/code.git'
wget http://nodejs.org/dist/node-latest.tar.gz tar -zxf node-latest.tar.gz cd node-v5.7.1/ ./configure make && make install yum install npm
如果npm无法安装
1 2
ln -s /usr/local/bin/node /usr/bin/node curl -L https://www.npmjs.com/install.sh | sudo sh
如果提示GCC编译器需要升级,可执行以下命令,升级GCC至最新版本:
1 2 3 4 5 6 7 8
wget http://gcc.skazkaforyou.com/releases/gcc-5.3.0/gcc-5.3.0.tar.gz tar -zxf gcc-5.3.0.tar.gz cd gcc-5.3.0/ ./contrib/download_prerequisites mkdir gcc_temp cd gcc_temp ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib make & make install