Я только что перенес приложение Rails с сервера Apache / Passenger на новый сервер Nginx / Unicorn, и у меня возникли проблемы с тем, чтобы заставить работать необходимые перенаправления.
Пока что конфигурация (которая была настроена кем-то еще до меня) успешно перенаправляет посещения на http(s)://example.com/
к http://www.example.com/
У меня проблемы с перенаправлением каждого второго посещения порта 80 на порт 443. Например, http://login.example.com/
-> https://login.example.com/
Я быстро просмотрел документацию Nginx, и со временем я прочту ее гораздо больше. Но сейчас мне просто нужно, чтобы это работало, поэтому я был бы очень признателен, если бы кто-нибудь показал мне, как мне изменить конфигурацию ниже:
upstream app_server {
server unix:/tmp/unicorn.mydomain.sock fail_timeout=0;
}
server {
server_name ~^www\..*\.mydomain.com$;
rewrite ^(.*) http://mydomain.com$1 permanent;
}
server {
listen 80 deferred;
listen 443 default ssl;
server_name .mydomain.com;
# Config for app directories, SSL certs, logs etc.
}
Спасибо заранее!
После небольшого количества проб и ошибок (с некоторой помощью nginx -t
чтобы убедиться, что я ничего не сломал) Наконец-то я получил эту конфигурацию:
upstream app_server {
server unix:/tmp/unicorn.mydomain.sock fail_timeout=0;
}
server {
server_name ~^www\..*\.mydomain.com$;
rewrite ^(.*) http://mydomain.com$1 permanent;
}
server {
listen 80;
server_name .mydomain.com;
rewrite ^ https://$host$request_uri? permanent;
}
server {
listen 443 default ssl;
server_name .mydomain.com;
# Config for app directories, SSL certs, logs etc.
}