Используя nginx, невозможно завершить acme-challange / получить доступ к файлам в новых местах

Используя nginx, невозможно завершить acme-challange / получить доступ к файлам в новых местах

Я хотел бы, чтобы мое приложение Flask в конечном итоге стало API и запускалось с сервера Windows. У меня есть домен на доменах Google, я добавил DNS api.(mydomain), используя IP-адрес компьютера, на котором оно будет работать как сервер. Я хотел, чтобы API было ssl и https, и использовал waitress -> nginx -> win-acme

Вот мой каталог: C:\Users\Wreck\Documents\Flask\acme-challenge. Внутри этой папки я создал файл test.txt, содержащий только чистый текст.

В папке Flask у меня есть приложение Flask, которое на данный момент просто выводит «Hello World».

Мой первый шаг — стать официанткой:

(venv) C:\Users\Wreck\Documents\Flask>waitress-serve --listen=*:5000 flaskappv1:app
INFO:waitress:Serving on http://[::]:5000
INFO:waitress:Serving on http://0.0.0.0:5000

Привет, мир! отображается на локальном хосте.

Затем я настроил nginx, после нескольких часов тестирования я все еще полностью застрял, почему возврат текстового файла из acme-challenge все еще приводит к ошибке. Вот мой код:

error_log  logs/error.log;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens off;
    
    
    server {
        listen 80;
        server_name api.rootmusic.app;

        location / {
            proxy_pass http://127.0.0.1:5000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        location ^~ /.well-known/acme-challenge/ {
            root C:/Users/Wreck/Documents/Flask/acme-challenge/;
            allow all;
            default_type "text/plain";
            try_files $uri =404;
        }
    }
}

И вот мои результаты:

C:\WINDOWS\system32>curl http://api.rootmusic.app/.well-known/acme-challenge/test.txt
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
</body>
</html>

C:\WINDOWS\system32>curl http://api.rootmusic.app/
Hello World!

Я отключил защитник Windows. Я перенаправил порты с IP-порта моего сервера на порты 80 и 5000. Я также установил входящие разрешения для брандмауэра Windows на порты 80 и 5000.

Думаю, это связано с моими правами на чтение и просмотр, но в диспетчере задач nginx запускается от Wreck, которым являюсь я, и я почти уверен, что являюсь администратором, и я проверил права на чтение и запись для всей структуры файлов.

Если это поможет, вот ошибка, которую я получаю, когда пытаюсь использовать win-acme для получения HTTPS для API.(домен)

 Plugin Manual generated source api.rootmusic.app with 1 identifiers
 Plugin Single created 1 order
 Cached order has status invalid, discarding
 [api.rootmusic.app] Authorizing...
 [api.rootmusic.app] Authorizing using http-01 validation (SelfHosting)
 [api.rootmusic.app] Authorization result: invalid
 [api.rootmusic.app] {"type":"urn:ietf:params:acme:error:unauthorized","detail":"(my ip): Invalid response from http://api.rootmusic.app/.well-known/acme-challenge/uQdTJeSYMKLUy9_7dIgEzLZQUay11eYUxvKNcxNPPv4: 404","status":403,"instance":null}
 [api.rootmusic.app] Deactivating pending authorization

Как вы могли догадаться, я довольно новичок в системном администрировании. Но спасибо, что дочитали до этого места. Если у вас есть предложения по смене программ или какой-либо способ сделать это проще, дайте мне знать, потому что я полностью застрял. Я начал с IIC, но перешел на nginx, потому что не смог в нем разобраться.

Но да, почему nginx не может читать файлы в расположении acme-challenge? Я предполагаю, что это то, что также останавливает win-acme.

Связанный контент