Локально запускал бота, все работало корректно, залил на сервер и возникли проблемы с настройкой nginx. Помогите пожалуйста разобраться.
Для примера
Мой домен : test-site.ru
ip : 111.111.111.111
Nginx config:
server {
listen 80;
listen 443 ssl;
server_name test-site.ru www.test-site.ru;
ssl on;
ssl_certificate /etc/ssl/test-site.ru.crt;
ssl_certificate_key /etc/ssl/test-site.ru.key;
location / {
include proxy_params;
proxy_pass https://111.111.111.111:8003;
}
}
В python:
from aiogram import Bot, Dispatcher, types
from aiogram.utils.executor import start_webhook
from dotenv import load_dotenv
import os
load_dotenv()
token = os.getenv('API_TOKEN')
bot = Bot(token)
dp = Dispatcher(bot)
WEBHOOK_DOMAIN = 'https://test-site.ru/'
WEBAPP_HOST = '111.111.111.111'
WEBAPP_PORT = '8003'
dp.message_handler()
async def echo(msg: types.Message):
await msg.answer(text=msg.text)
async def on_startup(dispatcher):
await bot.set_webhook(WEBHOOK_DOMAIN, drop_pending_updates=True)
async def on_shutdown(dispatcher):
await bot.delete_webhook()
if __name__ == '__main__':
start_webhook(dispatcher=dp, webhook_path='', on_startup=on_startup, on_shutdown=on_shutdown, skip_updates=True, host=WEBAPP_HOST, port=WEBAPP_PORT)
Я запускаю скрипт питона через "python3 test.py", в терминале:
Updates were skipped successfully.
======== Running on http://111.111.111.111:8003 ========
(Press CTRL+C to quit)
Тут указан http, хотя наверное должен быть https, говорит ли это о том что сертификат ssl не подключен?
Далее, если я отправляю боту сообщение, в терминал сыпятся ошибки:
aiohttp.http_exceptions.BadStatusLine: 400, message="Bad status line 'Invalid method encountered'"
в логах nginx "POST / HTTP/1.1" 502 166 "-" "-"
Посмотрел в гугле, у многих такая ошибка была связана с портами, поэтому я попробовал поменять в конфиге nginx порт, который он слушает на 8443-ий. Ошибка пропала, но бот по прежнему не реагирует, я посмотрел логи nginx, там нет записей что были запросы.
Если правильно понимаю, по логам приходят ответы с 502 статусом