액세스 할 때 :
http://example.com/somefolder- > http://example.com:8080/somefolder
나는 이것을 시도했다 :
http {
port_in_redirect off;
어떤 아이디어?
답변
방금 같은 문제가 발생하여 port_in_redirect off;
실제로 나를 위해 일했습니다 server {}
. 블록 내에서 사용하십시오 .
server {
listen 8080;
server_name example.com;
port_in_redirect off;
autoindex on;
location / {
root /var/www/example.com;
index index.html;
}
}
답변
이 문제를 해결해야한다. proxy_redirect
지시문 바로 뒤에 proxy_pass
지시문 추가
proxy_redirect http://example.com:8080/ http://example.com/;
답변
nginx 리버스 프록시 설정 뒤에 아파치가있는 동안 누군가이 문제가 계속 발생하면 ff를 시도 할 수 있습니다.
위치 / { proxy_redirect 해제; proxy_set_header 호스트 $ host : $ server_port; # <-이건 내 문제를 해결했다 proxy_set_header X-Forwarded-Host $ http_host; proxy_set_header X-Real-IP $ remote_addr; proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8083 ; }
내 설정은 Apache가 127.0.0.1:8083을 듣고 nginx 프록시 요청을 받도록하는 것입니다.
답변
내 nginx + Apache 설정과 동일한 문제가있었습니다. Apache는 자체 포트 (8080에서 실행)로 리디렉션되는 반면 nginx는 포트 80에 있습니다.
내 설정에서 이것은 일반 URL에 대해 무한 리디렉션 루프 를 만들었습니다 .
proxy_set_header Host $host:80; # Force port 80
대신 다음과 같이 반환 데이터를 포트 80에 바인딩하십시오.
proxy_bind $host:80; # Bind to port 80
내 nginx 서버 블록은 다음과 같습니다.
server {
listen 80;
listen [::]:80 ipv6only=on;
server_name _; # Wildcard server
location / {
proxy_bind $host:80; # Bind to port 80 << THIS IS THE MAGIC
proxy_pass http://localhost:8080;
proxy_set_header Host $host; # Pass host header
proxy_set_header X-Real-IP $remote_addr; # Preserve client IP
proxy_set_header X-Forwarded-For $remote_addr;
}
}
이 와일드 카드 설정을 사용하면 nginx에 서버 블록이없는 모든 요청이 Apache로 전달됩니다.
답변
다른 사람 이이 문제를 겪고있는 경우-여기 기사 : http://www.linuxquestions.org/questions/linux-server-73/strange-nginx-redirects-without-trailing-slash-930876/ 저를 위해 문제를 해결했습니다. .
프록시에 추가 헤더를 추가해야했습니다.
당신이 호스트가 설정되어 있는지 확인 $http_host
하고 또한 설정하는가 X-Forwarded-Host
에 $http_host
다음과 같은 :
proxy_redirect off;
proxy_set_header Host $http_host; # <-- make sure this is $http_host
proxy_set_header X-Forwarded-Host $http_host; # <-- make sure you set this
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 16k;
proxy_buffers 32 8k;
proxy_busy_buffers_size 64k;
답변
이 간단한 예제로 충분하다고 생각합니다.
location = /somefolder {
return 302 http://$host:8080/somefolder;
}
답변
http://wiki.codemongers.com/NginxHttpCoreModule#port_in_redirect
syntax: port_in_redirect [ on|off ]
default: port_in_redirect on
context: http, server, location
이것이 당신이 찾고있는 것이기를 바랍니다.