lnmp安装ss-panel和shadowsocks-manyuser及多节点管理

一、说明

  • Ubuntu 14.04 x64,其它系统相似
  • 工具:xshell+xftp(win)、终端+yummy ftp(mac)

二、安装 Web环境

预备必要环境
apt-get update && apt-get upgrade -y apt-get install -y redis-server screen m2crypto git python-pip curl
设置vi的中文支持
vi /etc/vim/vimrc
按i,添加如下内容:
set fileencodings=utf-8,gb2312,gbk,gb18030 set termencoding=utf-8 set encoding=prc
按esc,输入:和wq保存退出并添加如下内容
安装lnmp
screen -S lnmp wget -c http://soft.vpser.net/lnmp/lnmp1.3-full.tar.gz && tar zxf lnmp1.3-full.tar.gz && cd lnmp1.3-full && ./install.sh lnmp
添加虚拟机
lnmp vhost add

三、安装ss-panel

进入添加的域名目录
cd /home/wwwroot/www.x.com #www.x.com改为你的目录 git clone https://github.com/orvice/ss-panel.git mv -f ss-panel/* . curl -sS https://getcomposer.org/installer | php php composer.phar install
创建MySQL数据库
mysql -u root -p create database shadowsocks; CREATE USER x IDENTIFIED BY '123456789'; use shadowsocks; source /home/wwwroot/www.x.com/db.sql; grant all privileges on shadowsocks.* to 'x'@'localhost' identified by '123456789'; flush privileges; exit;
开启数据库远程登录(单节点,跳过此步骤)
>mysql -u root -p use mysql; select host,user from user; #你指定的那个用户登录的host字段是否显示为%若不是则执行 update user set host = '%' where user = 'root'; #再如上检查,并刷新权限 flush privileges; exit;

或者
>直接在浏览器输入 IP/phpmyadmin,用root登录进入后,点击用户,找到x,编辑权限—————登录信息,改为任意主机,执行保存后主机变为%。
打开3306端口
>iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT >service iptables save

配置nginx
vim /usr/local/nginx/conf/vhost/*.conf
>修改
server_name x.com www.x.com; #或ip
>在root后添加public
root /home/wwwroot/www.x.com/public
>再在root这一行下面添加
location / { try_files $uri $uri/ /index.php$is_args$args; }
>保存退出

配置ss-panel站点文件
cp /home/wwwroot/www.x.com/ss-panel/.env.example .env
>vim /home/wwwroot/www.x.com/.env
>>database 数据库配置
db_driver = 'mysql' db_host = 'localhost' db_port = '3306' db_database = 'shadowsocks' //上文新建的数据库名字 db_username = 'x' //上文新建的登录数据库shadowsocks的用户名 db_password = '123456789' //用户名x的登录密码 db_charset = 'utf8' db_collation = 'utf8_general_ci' db_prefix = ''

创建ss-panel站点管理员
cd /home/wwwroot/www.x.com chown -R www storage php xcat createAdmin
给予网站目录权限
chown www:www /home/wwwroot -R
重启nginx,使新配置生效
service nginx restart 或者 service nginx reload
在浏览器输入你在nginx中添加的域名或IP,便可进入ss-panel网站。

四、安装shadowsocks-manyuser

cd pip install cymysql git clone -b manyuser https://github.com/breakwa11/shadowsocks.git
编辑config.json
vim /root/shadowsocks/shadowsocks/config.json #与上文一样就可跳过这步
编辑config.py
vim /root/shadowsocks/shadowsocks/Config.py
>按i, 修改内容项如下,一定要与ss-panel的.env文件选项一致
>MYSQL_HOST = 'localhost' #MySQL服务器域名 MYSQL_PORT = 3306 #MySQL服务器端口 MYSQL_USER = 'x' #MySQL用户名 MYSQL_PASS = '123456789' #MySQL用户密码 MYSQL_DB = 'shadowsocks' #MySQL数据库名
>保存退出

大功告成,测试下
cd /root/shadowsocks/shadowsocks python server.py #看输出信息来确定是否正常运行连接到数据库和监听端口
ctrl+c,先中断,安装supervisor来值守进程
cd /root pip install --upgrade pip pip install supervisor echo_supervisord_conf > /etc/supervisord.conf vim /etc/supervisord.conf
>按i,去掉最后两行前的;,修改为
>[include] files = /etc/supervisord.conf.d/*.conf
>保存退出

mkdir /etc/supervisord.conf.d cd /etc/supervisord.conf.d vim shadowsocks.conf
>按i,添加如下
>[program:shadowsocks] command=python /root/shadowsocks/shadowsocks/server.py -c /root/shadowsocks/shadowsocks/config.json autostart=true autorestart=true stderr_logfile = /root/shadowsocks.err.log stdout_logfile = /root/shadowsocks.out.log
>保存退出

运行supervisor
supervisord -c /etc/supervisord.conf
supervisor运行后就交由supervisorctl来管理了
使修改的配置立即生效
>supervisorctl update

查看运行进程
supervisorctl status
设置开机启动supervisor
vi /etc/rc.local
>在exit0之前添加
>supervisord -c /etc/supervisord.conf
但是我自己重新开机,不会自启,需要手动启动supervisor
supervisord -c /etc/supervisord.conf
好了自此大功告成

五、安装第二台服务器vps

  • 多台vps节点管理
  • 不需要安装web环境,前段ss-panel
  • 只需要安装必要环境和后端shadowsocks
  • 这里以shadowsocks-manyuser为例
apt-get update && apt-get upgrade -y apt-get install -y redis-server screen m2crypto git python-pip curl pip install cymysql git clone -b manyuser https://github.com/breakwa11/shadowsocks.git
编辑 config.json,除非你要修改加密方法或与上文第一台服务器ss-panel站点加密一致,否则跳过这一步骤
vim /root/shadowsocks/shadowsocks/config.json
编辑config.py
vim /root/shadowsocks/shadowsocks/Config.py
>按i, 修改内容项如下,一定要与ss-panel的.env文件选项一致
>MYSQL_HOST = '第一台服务器ip或域名' #MySQL服务器域名 MYSQL_PORT = 3306 #MySQL服务器端口 MYSQL_USER = 'x' #MySQL用户名 MYSQL_PASS = '123456789' #MySQL用户密码 MYSQL_DB = 'shadowsocks' #MySQL数据库名
保存退出

大功告成,测试下
cd /root/shadowsocks/shadowsocks python server.py

supervisor或者后台运行与上文同。