Несколько предложений:
1) Удалите перенаправление iptables, возможно, вы захотите, чтобы nginx работал с перенаправлениями, а не с iptables.
-D
флаг отменяет правило iptables:
sudo iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
2) Проверьте конфигурацию iptables, особенно секцию Chain INPUT
, она должна разрешать входящие соединения на порт 443.
Вот как вы можете включить его: iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
3) Убедитесь, что nginx запущен и работает systemctl status nginx
.Похоже, что ваши подключения к порту 80 были ранее перенаправлены iptables непосредственно в ваше приложение node.js.
4) Убедитесь, что nginx считывает вашу конфигурацию.Проверьте файл конфигурации nginx (less /etc/nginx/nginx.conf
), скорее всего, он будет иметь такие строки:
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
Если это так, папка sites-aviable
не читается по умолчанию, и вам нужно будет создатьсимволическая ссылка на ваш пользовательский файл конфигурации:
sudo ln -s /etc/nginx/sites-aviable/default /etc/nginx/sites-enabled/default
5) Обновите вашу конфигурацию /etc/nginx/sites-aviable/default
, включив в нее правило proxy_pass:
server {
server_name okium.fun;
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
# your ssl configuration here
# ...
location / {
proxy_pass http://127.0.0.1:3000;
}
}
6) Проверьте конфигурацию nginx: sudo nginx -t
.Если все в порядке, вы увидите следующее сообщение:
the configuration file /etc/nginx/nginx.conf syntax is ok
7) Перезагрузите nginx sudo nginx -s reload
и проверьте, можете ли вы подключиться через https.
8) Если вы все еще получаете ERR_CONNECTION_REFUSED, вернитесь к вашей конфигурации iptables sudo iptables -nL
и убедитесь, что nginx прослушивает 443 порт sudo lsof -i
.