|
@@ -14,6 +14,7 @@ import (
|
|
|
"imuslab.com/zoraxy/mod/dynamicproxy/loadbalance"
|
|
|
"imuslab.com/zoraxy/mod/dynamicproxy/permissionpolicy"
|
|
|
"imuslab.com/zoraxy/mod/dynamicproxy/rewrite"
|
|
|
+ "imuslab.com/zoraxy/mod/netutils"
|
|
|
"imuslab.com/zoraxy/mod/uptime"
|
|
|
"imuslab.com/zoraxy/mod/utils"
|
|
|
)
|
|
@@ -28,10 +29,22 @@ func ReverseProxtInit() {
|
|
|
Load Reverse Proxy Global Settings
|
|
|
*/
|
|
|
inboundPort := 443
|
|
|
+ autoStartReverseProxy := true
|
|
|
if sysdb.KeyExists("settings", "inbound") {
|
|
|
+ //Read settings from database
|
|
|
sysdb.Read("settings", "inbound", &inboundPort)
|
|
|
- SystemWideLogger.Println("Serving inbound port ", inboundPort)
|
|
|
+ if netutils.CheckIfPortOccupied(inboundPort) {
|
|
|
+ autoStartReverseProxy = false
|
|
|
+ SystemWideLogger.Println("Inbound port ", inboundPort, " is occupied. Change the listening port in the webmin panel and press \"Start Service\" to start reverse proxy service")
|
|
|
+ } else {
|
|
|
+ SystemWideLogger.Println("Serving inbound port ", inboundPort)
|
|
|
+ }
|
|
|
} else {
|
|
|
+ //Default port
|
|
|
+ if netutils.CheckIfPortOccupied(inboundPort) {
|
|
|
+ inboundPort = 8743
|
|
|
+ SystemWideLogger.Println("Port 443 is occupied. Switching to backup port 8743 instead")
|
|
|
+ }
|
|
|
SystemWideLogger.Println("Inbound port not set. Using default (443)")
|
|
|
}
|
|
|
|
|
@@ -60,6 +73,9 @@ func ReverseProxtInit() {
|
|
|
}
|
|
|
|
|
|
listenOnPort80 := true
|
|
|
+ if netutils.CheckIfPortOccupied(80) {
|
|
|
+ listenOnPort80 = false
|
|
|
+ }
|
|
|
sysdb.Read("settings", "listenP80", &listenOnPort80)
|
|
|
if listenOnPort80 {
|
|
|
SystemWideLogger.Println("Port 80 listener enabled")
|
|
@@ -136,9 +152,11 @@ func ReverseProxtInit() {
|
|
|
//Start Service
|
|
|
//Not sure why but delay must be added if you have another
|
|
|
//reverse proxy server in front of this service
|
|
|
- time.Sleep(300 * time.Millisecond)
|
|
|
- dynamicProxyRouter.StartProxyService()
|
|
|
- SystemWideLogger.Println("Dynamic Reverse Proxy service started")
|
|
|
+ if autoStartReverseProxy {
|
|
|
+ time.Sleep(300 * time.Millisecond)
|
|
|
+ dynamicProxyRouter.StartProxyService()
|
|
|
+ SystemWideLogger.Println("Dynamic Reverse Proxy service started")
|
|
|
+ }
|
|
|
|
|
|
//Add all proxy services to uptime monitor
|
|
|
//Create a uptime monitor service
|