mirror of
https://github.com/Mailu/Mailu.git
synced 2025-01-06 00:26:08 +02:00
Maybe fix #3402
This commit is contained in:
parent
d671abde51
commit
8b34fbe881
@ -66,6 +66,9 @@ http {
|
||||
listen [::]:80{% if PROXY_PROTOCOL_80 %} proxy_protocol{% endif %};
|
||||
{% endif %}
|
||||
{% if TLS_FLAVOR in ['letsencrypt', 'mail-letsencrypt'] %}
|
||||
location ^~ /.well-known/acme-challenge/testing {
|
||||
return 204;
|
||||
}
|
||||
location ^~ /.well-known/acme-challenge/ {
|
||||
proxy_pass http://127.0.0.1:8008;
|
||||
}
|
||||
@ -159,6 +162,9 @@ http {
|
||||
}
|
||||
|
||||
{% if TLS_FLAVOR in ['letsencrypt', 'mail-letsencrypt'] %}
|
||||
location ^~ /.well-known/acme-challenge/testing {
|
||||
return 204;
|
||||
}
|
||||
location ^~ /.well-known/acme-challenge/ {
|
||||
proxy_pass http://127.0.0.1:8008;
|
||||
}
|
||||
|
@ -6,8 +6,6 @@ import requests
|
||||
import sys
|
||||
import subprocess
|
||||
import time
|
||||
from threading import Thread
|
||||
from http.server import HTTPServer, SimpleHTTPRequestHandler
|
||||
|
||||
log.basicConfig(stream=sys.stderr, level="WARNING")
|
||||
hostnames = ','.join(set(host.strip() for host in os.environ['HOSTNAMES'].split(',')))
|
||||
@ -45,33 +43,20 @@ command2 = [
|
||||
# Wait for nginx to start
|
||||
time.sleep(5)
|
||||
|
||||
class MyRequestHandler(SimpleHTTPRequestHandler):
|
||||
def do_GET(self):
|
||||
if self.path == '/.well-known/acme-challenge/testing':
|
||||
self.send_response(204)
|
||||
else:
|
||||
self.send_response(404)
|
||||
self.send_header('Content-Type', 'text/plain')
|
||||
self.end_headers()
|
||||
|
||||
def serve_one_request():
|
||||
with HTTPServer(("127.0.0.1", 8008), MyRequestHandler) as server:
|
||||
server.handle_request()
|
||||
|
||||
# Run certbot every day
|
||||
while True:
|
||||
while True:
|
||||
hostname = os.environ['HOSTNAMES'].split(',')[0]
|
||||
target = f'http://{hostname}/.well-known/acme-challenge/testing'
|
||||
thread = Thread(target=serve_one_request)
|
||||
thread.start()
|
||||
r = requests.get(target)
|
||||
if r.status_code != 204:
|
||||
log.critical(f"Can't reach {target}!, please ensure it's fixed or change the TLS_FLAVOR.")
|
||||
time.sleep(5)
|
||||
else:
|
||||
break
|
||||
thread.join()
|
||||
try:
|
||||
r = requests.get(target)
|
||||
if r.status_code != 204:
|
||||
log.critical(f"Can't reach {target}!, please ensure it's fixed or change the TLS_FLAVOR.")
|
||||
time.sleep(5)
|
||||
else:
|
||||
break
|
||||
except Exception as e:
|
||||
log.error(f"Exception while fetching {target}!", exc_info = e)
|
||||
|
||||
subprocess.call(command)
|
||||
subprocess.call(command2)
|
||||
|
1
towncrier/newsfragments/3402.bugfix
Normal file
1
towncrier/newsfragments/3402.bugfix
Normal file
@ -0,0 +1 @@
|
||||
Fix a potential problem with SO_REUSEADDR that may prevent admin from starting up
|
Loading…
Reference in New Issue
Block a user