LINUX.ORG.RU
решено ФорумAdmin

при rewrite nginx удаляет номер порта

 ,


0

1

nginx работает на порту 12380

есть желание при «пустом» http запросе перенаправлять в /sysinfo/ т.е. что бы запрос http://88.88.88.88:12380 реврайтился в http://88.88.88.88:12380/sysinfo/

дописываю в конфиг nginx вроде бы элементарный «rewrite ^/$ /sysinfo/»

и запрос реврайтится в http://88.88.88.88/sysinfo/ т.е. теряется номер порта, а 80 порт закрыт.

как правильно послать ??

★★★★★

Ответ на: комментарий от l0stparadise

содержимое /etc/nginx/sites-enabled/pf1

остальной набор конфигов не менял, все работает.

в /sysinfo/ лежит последний phphsysinfo, по http://88.88.88.88:12380/sysinfo/ запускается.

# Default server configuration
server {
	listen 12380 default_server;
	root /var/www/html;
	index index.html index.php;

	location / {
		try_files $uri $uri/ =404;
		rewrite "^/$" "/sysinfo/" redirect;
	} # / ------------------------
	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
		fastcgi_pass unix:/run/php/php-fpm.sock;
	} # .php
} # server
#end

pfg ★★★★★
() автор топика
Ответ на: комментарий от l0stparadise

Тогда-уж:

location = / {
    return 301 http://$host:$server_port/sysinfo;
}


Но вообще что-то странно. Реврайт (если без флага redirect или permanent) по идее работает внутри server-а, так-что порт там уже никаким боком не участвует.
Хотя я не понял относится-ли «Полный URL перенаправлений формируется согласно схеме запроса ($scheme) и директив server_name_in_redirect и port_in_redirect» только к redirect/permanent, или к любым реврайтам.

P.S. попробуй засунуть rewrite в server, а не в location

UPD: а может бекэнд чудит? Попробуй заменить sysinfo на статический файл

MrClon ★★★★★
()
Последнее исправление: MrClon (всего исправлений: 1)

У меня, что-то подобное было, только наоборот, когда я забыл $server_port убрать.
Также проверь на конфиг на присутствие port_in_redirect off;

anonymous_sama ★★★★★
()
Ответ на: комментарий от pfg

rewrite «^/$» «/sysinfo/» redirect;

И только теперь я заметил слона.
Ну тогда да, дело скорее всего в port_in_redirect

MrClon ★★★★★
()

в общем как обычно - это не лыжи не едут, а я .... :)

изменил на вот это, обе работают (одна закоментирована).

#	if ( $uri = "/" ) { return 302 http://$host:$server_port/sysinfo/; }
	rewrite ^/$ /sysinfo;

pfg ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.