Рейтинг:0

NGINX перенаправляет на localhost:3000

флаг es

Я использую ruby ​​on rails в док-контейнере, на котором работает мой сайт. https://redrebelgames.com на порту 3000. Я пытаюсь настроить NGINX для перенаправления трафика http:// на https:// и перенаправления порта 80 на порт 3000. Это работает, если вы переходите напрямую на IP-адрес: 143.244.156.208. Он даже перенаправляет трафик на порт 80. Однако некоторые фотографии не загружаются, как показано ниже: введите описание изображения здесь

А сам домен не рабочий. Что не так с моей конфигурацией в /etc/nginx/sites-available/default? Вы можете увидеть внутреннюю часть файла ниже:

##
# Вам следует просмотреть следующие URL-адреса, чтобы получить четкое представление
# файлов конфигурации Nginx, чтобы полностью раскрыть всю мощь Nginx.
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# В большинстве случаев администраторы удалят этот файл с сайтов с поддержкой/ и
# оставить его как ссылку на доступных сайтах, где он и дальше будет
# обновлено командой упаковки nginx.
#
# Этот файл будет автоматически загружать файлы конфигурации, предоставленные другими
# приложения, такие как Drupal или Wordpress. Эти приложения будут сделаны
# доступен по пути с этим именем пакета, например /drupal8.
#
# Более подробные примеры см. в /usr/share/doc/nginx-doc/examples/.
##

# Конфигурация сервера по умолчанию
#
сервер {
    слушать 80 default_server;
    слушать [::]:80 default_server;

    # конфигурация SSL
    #
    # слушать 443 ssl default_server;
    # слушать [::]:443 ssl default_server;
    #
    # Примечание. Вы должны отключить gzip для трафика SSL.
    # См.: https://bugs.debian.org/773332
    #
    # Прочтите ssl_ciphers, чтобы обеспечить безопасную конфигурацию.
    # См.: https://bugs.debian.org/765782
    #
    # Самоподписанные сертификаты, созданные пакетом ssl-cert
    # Не используйте их на рабочем сервере!
    #
    # включить фрагменты/snakeoil.conf;

    # корень /var/www/html;

    # Добавьте index.php в список, если вы используете PHP
    # индекс index.html index.htm index.nginx-debian.html;

    имя сервера _;

    место расположения / {
        proxy_pass http://localhost:3000;
        # proxy_http_version 1.1;
        # proxy_set_header Обновление $http_upgrade;
        # proxy_set_header Соединение 'upgrade';
        # proxy_set_header Хост $host;
        # proxy_cache_bypass $http_upgrade;
    
        # Сначала пытаемся обслужить запрос как файл, затем
        # в качестве каталога, затем вернуться к отображению 404.
        #try_files $uri $uri/ =403;
    }

    # передать PHP-скрипты на сервер FastCGI
    #
    #местоположение ~ \.php$ {
    # включить сниппеты/fastcgi-php.conf;
    #
    # # С php-fpm (или другими сокетами unix):
    # fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    # # С php-cgi (или другими сокетами tcp):
    # fastcgi_pass 127.0.0.1:9000;
    #}

    # запретить доступ к файлам .htaccess, если корневой каталог Apache
    # совпадает с nginx
    #
    #местоположение ~ /\.ht {
    # запретить все;
    #}
}


# Конфигурация виртуального хоста для example.com
#
# Вы можете переместить это в другой файл в разделе sites-available/ и указать символическую ссылку, которая
# на site-enabled/, чтобы включить его.
#
# сервер {
# слушать 80;
# слушать [::]:80;
#
# имя_сервера example.com;
#
# корень /var/www/example.com;
# индекс index.html;
#
#   место расположения / {
# try_files $uri $uri/ =404;
# }
#}

сервер {

    # конфигурация SSL
    #
    # слушать 443 ssl default_server;
    # слушать [::]:443 ssl default_server;
    #
    # Примечание. Вы должны отключить gzip для трафика SSL.
    # См.: https://bugs.debian.org/773332
    #
    # Прочтите ssl_ciphers, чтобы обеспечить безопасную конфигурацию.
    # См.: https://bugs.debian.org/765782
    #
    # Самоподписанные сертификаты, созданные пакетом ssl-cert
    # Не используйте их на рабочем сервере!
    #
    # включить фрагменты/snakeoil.conf;

    # корень /var/www/html;

    # Добавьте index.php в список, если вы используете PHP
    # индекс index.html index.htm index.nginx-debian.html;
    имя_сервера redrebelgames.com; # под управлением Certbot


    место расположения / {
        proxy_pass http://localhost:3000;
        # proxy_http_version 1.1;
        # proxy_set_header Обновление $http_upgrade;
        # proxy_set_header Соединение 'upgrade';
        # proxy_set_header Хост $host;
        # proxy_cache_bypass $http_upgrade;
    
        # Сначала пытаемся обслужить запрос как файл, затем
        # в качестве каталога, затем вернуться к отображению 404.
        #try_files $uri $uri/ =404;
    }

    # передать PHP-скрипты на сервер FastCGI
    #
    #местоположение ~ \.php$ {
    # включить сниппеты/fastcgi-php.conf;
    #
    # # С php-fpm (или другими сокетами unix):
    # fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    # # С php-cgi (или другими сокетами tcp):
    # fastcgi_pass 127.0.0.1:9000;
    #}

    # запретить доступ к файлам .htaccess, если корневой каталог Apache
    # совпадает с nginx
    #
    #местоположение ~ /\.ht {
    # запретить все;
    #}


    слушать [::]:443 ssl ipv6only=on; # под управлением Certbot
    слушать 443 ssl; # под управлением Certbot
    ssl_certificate /etc/letsencrypt/live/redrebelgames.com/fullchain.pem; # под управлением Certbot
    ssl_certificate_key /etc/letsencrypt/live/redrebelgames.com/privkey.pem; # под управлением Certbot
    включить /etc/letsencrypt/options-ssl-nginx.conf; # под управлением Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # под управлением Certbot

}
сервер {
    если ($ host = redrebelgames.com) {
        вернуть 301 https://$host$request_uri;
    } # управляется Certbot


    слушать 80 ;
    слушать [::]:80 ;
    имя_сервера redrebelgames.com;
    вернуть 404; # под управлением Certbot


}
Steffen Ullrich avatar
флаг se
*"Я пытаюсь настроить NGINX для перенаправления трафика http:// на https:// и __перенаправления__ порта 80 на порт 3000."* - Нет. Вы пытаетесь __прокси__ порта 80 на порт 3000, как видно директива proxy_pass. __Redirect__ означает указание браузеру посетить другой URL-адрес, что невозможно в вашем случае, поскольку `localhost:3000` доступен только с локального компьютера. __Proxy__ означает передачу запроса клиента на внутренний сервер и передачу ответа сервера обратно клиенту. Таким образом, внутренний сервер на локальном хосте становится видимым снаружи.
Michael Hampton avatar
флаг cz
У вас все еще есть проблема? Ваш сайт загружается нормально, без каких-либо признаков неуместных перенаправлений.
флаг es
На моей машине все еще перенаправляется на https://localhost:3000. Вы знаете, что случилось?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.