Я использую 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
}