proxy.php
1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
error_reporting(E_ALL);
ini_set("display_errors","off");
/**
* TODO:: 这个文件请用root执行
* 这个文件请加ip白名单访问
*/
function sign(){
return md5('fob.guaidong007'.date('ym').$_REQUEST['rand_str'].'=');
}
if($_SERVER['AUTH_VERIFY'] != sign()){
http_response_code(500);
echo 'auth error';
exit(1);
}
$body = file_get_contents("php://input");
$body = base64_decode($body);
$body = json_decode($body, true);
define('CONF_FILNAME','/www/server/panel/vhost/nginx/tcp/mail.conf');
/**
* 保存配置
* @param $body
* @return int
* @author:dc
* @time 2025/4/14 22:54
*/
//server {
// listen 10087; # 监听的端口
// proxy_pass smtp.gmail.com:465;
//}
function saveconfig($body){
$config = [];
foreach ($body['proxys'] as $port=>$domain){
$config[] = "server {
listen {$port};
proxy_pass {$domain};
}";
}
$config = implode("\n",$config);
if(@file_put_contents(CONF_FILNAME,$config)){
return 200;
}
return 500;
}
/**
* 重启nginx服务
* @return int
* @author:dc
* @time 2025/4/14 22:54
*/
function reload(){
exec("nginx -s reload",$ret,$code);
return $code===0?200:500;
}
/**
* 检查端口监听状态
* @param $body
* @author:dc
* @time 2025/4/14 22:53
*/
function check_prot($body){
$ports = $body['prots'];
foreach ($ports as $port){
exec("netstat -ano | grep :$port",$ret,$code);
echo $port;
echo ":";
if(count($ret)>=1){
echo "1";
}else{
echo "0";
}
echo "\n";
}
}
echo call_user_func($body['action'],$body);
return 0;