From 50ec1c59d2dcb5ae3fac0ab4b3a43dc91dbd16a7 Mon Sep 17 00:00:00 2001 From: Mr Chen Date: Wed, 18 Dec 2024 22:53:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=89=8B=E5=8A=A8=E4=BB=A3?= =?UTF-8?q?=E7=90=86=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/admin/site/proxy.py | 11 ++++++++++- web/utils/site.py | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/web/admin/site/proxy.py b/web/admin/site/proxy.py index 5c333845a..65437b0b3 100644 --- a/web/admin/site/proxy.py +++ b/web/admin/site/proxy.py @@ -47,7 +47,7 @@ def set_proxy(): proxy_id = request.form.get('id', '') return MwSites.instance().setProxy(site_name,site_from,to,host,name,open_proxy, open_cache,cache_time, proxy_id) -# 获取代理状态 +# 设置代理状态 @blueprint.route('/set_proxy_status', endpoint='set_proxy_status', methods=['POST']) @panel_login_required def set_proxy_status(): @@ -65,6 +65,15 @@ def get_proxy_conf(): rid = request.form.get("id", '') return MwSites.instance().getProxyConf(site_name, rid) +# 设置代理 +@blueprint.route('/get_proxy_conf', endpoint='get_proxy_conf', methods=['POST']) +@panel_login_required +def get_proxy_conf(): + site_name = request.form.get("siteName", '') + rid = request.form.get("id", '') + config = request.form.get("config", "") + return MwSites.instance().saveProxyConf(site_name, rid, config) + # 删除代理配置 @blueprint.route('/del_proxy', endpoint='del_proxy', methods=['POST']) diff --git a/web/utils/site.py b/web/utils/site.py index 248d3636f..adbcc6fc2 100644 --- a/web/utils/site.py +++ b/web/utils/site.py @@ -1709,6 +1709,25 @@ location ^~ {from} {\n\ data = mw.readFile(conf_file) return mw.returnData(True, "ok", {"result": data}) + def saveProxyConf(self, site_name, proxy_id, config): + + if proxy_id == '' or site_name == '': + return mw.returnData(False, "必填项不能为空!") + + proxy_file = "{}/{}/{}.conf".format(self.proxyPath, site_name, proxy_id) + mw.backFile(proxy_file) + mw.writeFile(proxy_file, config) + rule_test = mw.checkWebConfig() + if rule_test != True: + mw.restoreFile(proxy_file) + mw.removeBackFile(proxy_file) + return mw.returnData(False, "OpenResty 配置测试不通过, 请重试: {}".format(rule_test)) + + mw.removeBackFile(proxy_file) + self.operateRedirectConf(site_name, 'start') + mw.restartWeb() + return mw.returnData(True, "ok") + def delProxy(self, site_name, proxy_id): if proxy_id == '' or site_name == '': return mw.returnData(False, "必填项不能为空!")