@cowan

Как сделать редирект nginx на другой сервер?

Всем привет!
Есть основной nginx, с него надо настроить редирект на другой сервер.
Делаю так:

server {
        server_name домен.ру www.домен.ру;
        location / {
            proxy_pass http://192.168.1.85;
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
}


Работает, но HTTPS нет. Запутался на каком именно nginx мне сертификат для домена выпустить? На который редирект делаю ведь?
В таком варианте у меня https не работает. Let's Encrypt сертификат получил на втором (на который редирект).
В чем моя ошибка?
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 2
SignFinder
@SignFinder
Wintel\Unix Engineer
Сертификат выпускается на сервере, который "смотрит наружу". В вашем случае именно там где настроено проксирование на 192.168.1.85. А проксирование запросов вообще можно по http сделать и в случае с https
Ответ написан
@cowan Автор вопроса
На сервере который "наружу" сделал такой конфиг:
server {
        listen 443 ssl;
        server_name домен.ру;
		ssl_certificate /etc/letsencrypt/live/домен.ру/fullchain.pem; 
		ssl_certificate_key /etc/letsencrypt/live/домен.ру/privkey.pem; 
		
        location / {
            proxy_pass https://192.168.1.85/;
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
}


server {
    if ($host = домен.ру) {
        return 301 https://домен.ру$request_uri;
    }
	listen 80;
	server_name домен.ру;
    return 404; 
}


Конфиг nginx прожевал ок. Но ругается 502 Bag gateway.
На сервере, который принимает я конфиг не уверен, что написал верно:
server {
#	listen 443 ssl;
#	server_name домен.ру;
#	root /var/www/html;
#	index index.php;
		client_body_buffer_size 32k;
		client_header_buffer_size 8k;
		large_client_header_buffers 8 64k;

        location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { 
                access_log off; 
                expires max; 
                log_not_found off; 
        } 
        location / { 

               try_files $uri $uri/ /index.php?$query_string;
        } 
    
	location ~* \.php$ {
	
	fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
	try_files $uri = 404;
	include     /etc/nginx/conf.d/php_php-fpm.conf;
	}	


    location ~ /\.ht { 
                deny all; 
        } 
 
}

server {
    if ($host = домен.ру) {
        return 301 https://домен.ру$request_uri;
    }
	
	listen 80;
	server_name домен.ру;
	root /var/www/html;
	index index.php;

   # return 404; 
}


Сейчас при обращении на домен.ру - сертификат отображается верно, но как я повторюсь вылезает 502 Bad gateway.
Чувствую, что в нем дело. Как его написать тогда верно без указания сертификатов и пр?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы