1. 程式人生 > >ss-panel v3前端與ss-manyuser後端配置supervisord守護完整教程

ss-panel v3前端與ss-manyuser後端配置supervisord守護完整教程

這是一個sspanel v3 配置的完整教程,我用的是lnmp框架,當然lamp也是可以的,安裝lnmp的過程我就不說了。

一,安裝ss-panel

首先我們進入網站目錄

cd /home/wwwroot/ss.iforday.com

git clone https://github.com/orvice/ss-panel.git

cp -R ss-panel/. ./
cp .env.example .env
vim .env

按照提示輸入你資料庫資訊和站點資訊,儲存
如果你啟用了redis,那麼要安裝redis
Centos7:(Centos6要自行安裝epel源,我懶得寫了)

wget -r --no-parent -A 'epel-release-*.rpm' http://dl.fedoraproject.org/pub/epel/7/x86_64/e/ 
rpm -Uvh dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-*.rpm
yum install redis -y

Debian/Ubuntu:

apt-get install redis-server -y

然後啟動redis

systemctl start redis.service

測試redis

redis-cli ping

看到PONG就是測試通過
安裝composer

curl -sS https://getcomposer.org/installer | php
php composer.phar install

如果像這樣報錯

可以試試使用php composer.phar update
把目錄下的db-160305.sql(檔名不一定,大致這樣)匯入資料庫
可以通過phpmyadmin實現
新增管理員賬號:

php xcat createAdmin

按提示填寫資訊即可

然後給檔案許可權:

chmod -R 777 storage

lnmp需要給www使用者訪問目錄許可權:

chown -R www /home/wwwroot/ss.iforday.com/

到這裡我們對網站目錄下的配置就完成了
下面我們對nginx的配置進行修改
我們進入nginx的conf目錄,修改網站的配置檔案
在root /home/wwwroot/ss.iforday.com後面加入/pubilc
在下面加入

location / {  
    try_files $uri $uri/ /index.php$is_args$args;
}


儲存退出,重啟nginx:

service nginx reload

這時候前端已經搭好,你的網站已經可以正常訪問,下面我們進行後端(manyuser)的配置

二,安裝shadowsocks manyuser

首先要授權遠端訪問mysql:
在資料庫所在的機器執行mysql -uroot -p
輸入你的資料庫密碼,執行use mysql;
再輸入:

grant all privileges on *.* to '資料庫名'@'manyuser所在ip'identified by '密碼' with grant option;

按Ctrl + C 退出mysql控制檯
shadowsocks-manyuser有許多版本:

ssr版:

git clone -b manyuser https://github.com/breakwa11/shadowsocks.git

rm版:

git clone -b manyuser https://github.com/mengskysama/shadowsocks-rm.git

普通版:

git clone -b manyuser https://github.com/mengskysama/shadowsocks.git

我推薦使用shadowsocks-rm

我們下載shadowsocks-rm的原始碼

git clone -b manyuser https://github.com/mengskysama/shadowsocks-rm.git

安裝pip包管理器

Centos:

yum install python-pip -y

Debian:

apt-get install python-pip -y

安裝cysql:

pip install cymysql

進入資料夾:

cd shadowsocks-rm
cd shadowsocks

修改config:

vim config.py


將剛才在sspanel配置檔案中填的資料庫地址填到這,下面的SS_METHOD是加密方式,可以自行修改
然後執行python servers.py

像這樣就是成功了,如果不行,多半是埠沒開或者sspanel中沒給流量...

如果你感覺 root:db loop 看起來不爽,你可以在config.py下面找到LOG_ENABLE,改成True就不會出現了

然後你會發現ssh一斷開,服務端也就關閉了,所以我們通過screen保持他在後臺執行

screen -S ss
python servers.py

在這裡我們還需要開啟iptables的防火牆:
舉個栗子,通過下面的程式碼可以開啟10000到20000之間的所有埠

 iptables -I INPUT -p tcp -m tcp --dport 10000:20000 -j ACCEPT
iptables -I INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT

然後別忘了儲存和重啟iptables
service iptables save
service iptables restart

ssr版的manyuser在第一層資料夾下,其他版本都在第二層下,配置過程大同小異,我就不寫了

shadowsocks-rm和ssr預設是支援UDP的,普通的manyuser對UDP支援不好,屬於NAT3,並且需要手動開啟,不推薦使用...

三,用Supervisor守護ss-manyuser程序

1.先安裝supervisor

由於前面配置ss-manyuser已經安裝了epel和python-pip,所以這裡就不安裝了

pip install supervisor

2.建立配置檔案:

echo_supervisord_conf > /etc/supervisord.conf

如果遇到下面這樣的問題,可以手動安裝meld3

方法如下:

git clone https://github.com/Supervisor/meld3
cd meld3
python setup.py install

然後再執行echo_supervisord_conf > /etc/supervisord.conf就行了
3.修改配置檔案
vim /etc/supervisord.conf
在最後面加入

[program:ss]
command = python /root/shadowsocks-rm/shadowsocks/servers.py  
user = root  
autostart = true  
autorestart = true

注意把python /root/shadowsocks-rm/shadowsocks/servers.py改成你manyuser所在的路徑

4.為了方便管理,我們可以新增到新增自動啟動服務:
vim /etc/init.d/supervisord

#!/bin/bash
#
# supervisord   This scripts turns supervisord on
#
# Author:       Mike McGrath <[email protected]> (based off yumupdatesd)
#
# chkconfig:    - 95 04
#
# description:  supervisor is a process control utility.  It has a web based
#               xmlrpc interface as well as a few other nifty features.
# processname:  supervisord
# config: /etc/supervisord.conf
# pidfile: /var/run/supervisord.pid
#
# source function library
. /etc/rc.d/init.d/functions
RETVAL=0
start() {
        echo -n $"Starting supervisord: "
        daemon supervisord
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/supervisord
}
stop() {
        echo -n $"Stopping supervisord: "
        killproc supervisord
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/supervisord
}
restart() {
        stop
        start
}
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|force-reload|reload)
        restart
        ;;
  condrestart)
        [ -f /var/lock/subsys/supervisord ] && restart
        ;;
  status)
        status supervisord
        RETVAL=$?
        ;;
  *)
        echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
        exit 1
esac
exit $RETVAL

給予執行許可權:
chmod +x /etc/init.d/supervisord

這樣我們就可以通過service命令管理supervisord了

如果想管理ss程序,應該用supervisorctl {start|stop|restart} ss
檢視ss在後臺的狀態:ps -ef | grep servers.py

到這你的shadowsocks分享站就已經搭完,是不是很簡單~