Merge pull request #84 from midoks/dev

申请ssl问题解决2
pull/109/head
Mr Chen 3 years ago committed by GitHub
commit 7aa2f8c012
  1. 2
      LICENSE
  2. 2
      README.md
  3. 17
      class/core/mw.py
  4. 8
      class/core/site_api.py
  5. 9
      plugins/openresty/index.py
  6. 21
      plugins/ssh-no-login/check-ssh.sh
  7. 2
      scripts/update_cn.sh
  8. 2
      scripts/update_dev.sh
  9. 74
      task.py

@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier same "printed page" as the copyright notice for easier
identification within third-party archives. identification within third-party archives.
Copyright [yyyy] [name of copyright owner] Copyright [midoks] [midoks of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

@ -97,7 +97,7 @@ curl -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/up
``` ```
### 微信赞助 ### 微信赞助
- [![截图](/route/static/img/weixin_zz.jpg)](/route/static/img/weixin_zz.jpg) [![截图](/route/static/img/weixin_zz.jpg)](/route/static/img/weixin_zz.jpg)
### 无图不真相 ### 无图不真相

@ -111,9 +111,22 @@ def isInstalledWeb():
def restartWeb(): def restartWeb():
if isInstalledWeb(): if not isInstalledWeb():
initd = getServerDir() + '/openresty/init.d/openresty' return False
# systemd
systemd = '/lib/systemd/system/openresty.service'
if os.path.exists(systemd):
execShell('systemctl restart openresty')
return True
# initd
initd = getServerDir() + '/openresty/init.d/openresty'
if os.path.exists(initd):
execShell(initd + ' ' + 'restart') execShell(initd + ' ' + 'restart')
return True
return False
def restartMw(): def restartMw():

@ -599,7 +599,11 @@ class site_api:
if not os.path.exists(acem): if not os.path.exists(acem):
return mw.returnJson(False, '尝试自动安装ACME失败,请通过以下命令尝试手动安装<p>安装命令: curl https://get.acme.sh | sh</p>' + acem) return mw.returnJson(False, '尝试自动安装ACME失败,请通过以下命令尝试手动安装<p>安装命令: curl https://get.acme.sh | sh</p>' + acem)
force_bool = False # 避免频繁执行
checkAcmeRun = mw.execShell('ps -ef|grep acme.sh |grep -v grep')
if checkAcmeRun[0] != '':
return mw.returnJson(False, '正在申请或更新SSL中...')
if force == 'true': if force == 'true':
force_bool = True force_bool = True
@ -973,7 +977,7 @@ class site_api:
"-START(.|\n)+BINDING-" + domain + "-END" "-START(.|\n)+BINDING-" + domain + "-END"
tmp = re.search(rep, conf).group() tmp = re.search(rep, conf).group()
dirConf = tmp.replace('rewrite/' + site['name'] + '.conf;', 'rewrite/' + site[ dirConf = tmp.replace('rewrite/' + site['name'] + '.conf;', 'rewrite/' + site[
'name'] + '_' + find['path'] + '.conf;') 'name'] + '_' + find['path'] + '.conf;')
conf = conf.replace(tmp, dirConf) conf = conf.replace(tmp, dirConf)
mw.writeFile(file, conf) mw.writeFile(file, conf)
data = {} data = {}

@ -131,11 +131,16 @@ def confReplace():
content = content.replace('{$OS_USER}', user) content = content.replace('{$OS_USER}', user)
content = content.replace('{$OS_USER_GROUP}', user_group) content = content.replace('{$OS_USER_GROUP}', user_group)
# 主配置文件
nconf = getServerDir() + '/nginx/conf/nginx.conf' nconf = getServerDir() + '/nginx/conf/nginx.conf'
__content = mw.readFile(nconf) __content = mw.readFile(nconf)
if __content.find('#user'): if __content.find('#user'):
mw.writeFile(getServerDir() + '/nginx/conf/nginx.conf', content) mw.writeFile(nconf, content)
# 静态配置
static_conf = getServerDir() + '/nginx/conf/enable-php-00.conf'
if not os.path.exists(static_conf):
mw.writeFile(static_conf, '')
# give nginx root permission # give nginx root permission
ng_exe_bin = getServerDir() + "/nginx/sbin/nginx" ng_exe_bin = getServerDir() + "/nginx/sbin/nginx"

@ -1,21 +0,0 @@
#! /bin/bash
#禁止弱口令登录改良版
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > black.txt #尝试登录的次数和ip
DEFINE="5" #单个ip尝试登录最大值
for i in `cat /root/black.txt`
do
IP=`echo $i |awk -F= '{print $1}'`
NUM=`echo $i|awk -F= '{print $2}'`
if [ $NUM -gt $DEFINE ]; then
grep $IP /etc/hosts.deny > /dev/null
if [ $? -gt 0 ]; then
echo "sshd:$IP" >> /etc/hosts.deny #扔到hosts文件中
fi
fi
done

@ -46,7 +46,7 @@ fi
wget -O /tmp/master.zip https://gitee.com/midoks/mdserver-web/repository/archive/master.zip wget -O /tmp/master.zip https://gitee.com/midoks/mdserver-web/repository/archive/master.zip
cd /tmp && unzip /tmp/master.zip cd /tmp && unzip /tmp/master.zip
mv /tmp/mdserver-web-master /www/server/mdserver-web cp -rf /tmp/mdserver-web-master/* /www/server/mdserver-web
rm -rf /tmp/master.zip rm -rf /tmp/master.zip
rm -rf /tmp/mdserver-web-master rm -rf /tmp/mdserver-web-master

@ -46,7 +46,7 @@ fi
wget -O /tmp/dev.zip https://github.com/midoks/mdserver-web/archive/refs/heads/dev.zip wget -O /tmp/dev.zip https://github.com/midoks/mdserver-web/archive/refs/heads/dev.zip
cd /tmp && unzip /tmp/dev.zip cd /tmp && unzip /tmp/dev.zip
mv /tmp/mdserver-web-dev /www/server/mdserver-web cp -rf /tmp/mdserver-web-dev/* /www/server/mdserver-web
rm -rf /tmp/dev.zip rm -rf /tmp/dev.zip
rm -rf /tmp/mdserver-web-dev rm -rf /tmp/mdserver-web-dev

@ -75,7 +75,6 @@ def execShell(cmdstring, cwd=None, timeout=None, shell=True):
import shlex import shlex
import datetime import datetime
import subprocess import subprocess
import time
if timeout: if timeout:
end_time = datetime.datetime.now() + datetime.timedelta(seconds=timeout) end_time = datetime.datetime.now() + datetime.timedelta(seconds=timeout)
@ -226,7 +225,6 @@ def systemTask():
try: try:
import system_api import system_api
import psutil import psutil
import time
sm = system_api.system_api() sm = system_api.system_api()
filename = 'data/control.conf' filename = 'data/control.conf'
@ -368,7 +366,7 @@ def systemTask():
mw.writeFile('logs/sys_interrupt.pl', str(ex)) mw.writeFile('logs/sys_interrupt.pl', str(ex))
restartMw() restartMw()
import time
time.sleep(30) time.sleep(30)
systemTask() systemTask()
@ -388,17 +386,18 @@ def check502Task():
def check502(): def check502():
try: try:
phpversions = ['53', '54', '55', '56', '70', '71', '72', '73', '74'] verlist = ['52', '53', '54', '55', '56', '70',
for version in phpversions: '71', '72', '73', '74', '80', '81']
for ver in verlist:
sdir = mw.getServerDir() sdir = mw.getServerDir()
php_path = sdir + '/php/' + version + '/sbin/php-fpm' php_path = sdir + '/php/' + ver + '/sbin/php-fpm'
if not os.path.exists(php_path): if not os.path.exists(php_path):
continue continue
if checkPHPVersion(version): if checkPHPVersion(ver):
continue continue
if startPHPVersion(version): if startPHPVersion(ver):
print('检测到PHP-' + version + '处理异常,已自动修复!') print('检测到PHP-' + ver + '处理异常,已自动修复!')
mw.writeLog('PHP守护程序', '检测到PHP-' + version + '处理异常,已自动修复!') mw.writeLog('PHP守护程序', '检测到PHP-' + ver + '处理异常,已自动修复!')
except Exception as e: except Exception as e:
print(str(e)) print(str(e))
@ -452,8 +451,8 @@ def checkPHPVersion(version):
try: try:
url = 'http://127.0.0.1/phpfpm_status_' + version url = 'http://127.0.0.1/phpfpm_status_' + version
result = mw.httpGet(url) result = mw.httpGet(url)
# print version,result # print(version,result)
# 检查nginx # 检查openresty
if result.find('Bad Gateway') != -1: if result.find('Bad Gateway') != -1:
return False return False
if result.find('HTTP Error 404: Not Found') != -1: if result.find('HTTP Error 404: Not Found') != -1:
@ -466,17 +465,52 @@ def checkPHPVersion(version):
isStatus = mw.readFile(isTask) isStatus = mw.readFile(isTask)
if isStatus == 'True': if isStatus == 'True':
return True return True
filename = '/etc/init.d/openresty'
if os.path.exists(filename): # systemd
os.system(filename + ' start') systemd = '/lib/systemd/system/openresty.service'
if os.path.exists(systemd):
execShell('systemctl reload openresty')
return True
# initd
initd = '/etc/init.d/openresty'
if os.path.exists(initd):
os.system(initd + ' reload')
return True return True
except: except:
return True return True
# --------------------------------------PHP监控 end--------------------------------------------- # # --------------------------------------PHP监控 end--------------------------------------------- #
# --------------------------------------OpenResty Auto Restart Start --------------------------------------------- #
# 解决acme.sh续签后,未起效。
def openrestyAutoRestart():
try:
while True:
# 检查是否安装
odir = mw.getServerDir() + '/openresty'
if not os.path.exists(odir):
time.sleep(86400)
continue
# systemd
systemd = '/lib/systemd/system/openresty.service'
initd = '/etc/init.d/openresty'
if os.path.exists(systemd):
execShell('systemctl reload openresty')
elif os.path.exists(initd):
os.system(initd + ' reload')
time.sleep(86400)
except Exception as e:
print(str(e))
time.sleep(86400)
# --------------------------------------OpenResty Auto Restart End --------------------------------------------- #
if __name__ == "__main__": if __name__ == "__main__":
# 系统监控
t = threading.Thread(target=systemTask) t = threading.Thread(target=systemTask)
if sys.version_info.major == 3 and sys.version_info.minor >= 10: if sys.version_info.major == 3 and sys.version_info.minor >= 10:
t.daemon = True t.daemon = True
@ -484,12 +518,20 @@ if __name__ == "__main__":
t.setDaemon(True) t.setDaemon(True)
t.start() t.start()
# PHP 502错误检查线程
p = threading.Thread(target=check502Task) p = threading.Thread(target=check502Task)
if sys.version_info.major == 3 and sys.version_info.minor >= 10: if sys.version_info.major == 3 and sys.version_info.minor >= 10:
p.daemon = True p.daemon = True
else: else:
p.setDaemon(True) p.setDaemon(True)
p.start() p.start()
# OpenResty Auto Restart Start
oar = threading.Thread(target=openrestyAutoRestart)
if sys.version_info.major == 3 and sys.version_info.minor >= 10:
oar.daemon = True
else:
oar.setDaemon(True)
oar.start()
startTask() startTask()

Loading…
Cancel
Save