Presmerovanie pri proxy s URL s portom na URL bez portu
- KristianSubweb
- Člen | 146
Ahojte, chcel by som sa opýtať mám naledujúci problém. Môj Nette projekt mám rozbehaný cez docker compose.
Časť mojej konfigutácie vyzerá nasledovne:
proxy:
build:
context: .
dockerfile: .docker/proxy/nginx.Dockerfile
ports:
- "5001:80"
environment:
- PHP_HOST=web
volumes:
- ./public:/path/public
networks:
- webnet
links:
- web
web:
build:
dockerfile: .docker/development/Dockerfile
context: .
args:
- UID=${UID:-1000}
- GID=${GID:-1000}
tty: true
ports:
- 7090:7090
working_dir: /project
depends_on:
- elasticsearch
- db
networks:
- webnet
volumes:
- ./:/project
environment:
- IN_DOCKER=1
Môj ngnix config vyzerá takto:
server {
server_name projectName.loc;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /projectName/public;
charset utf8;
# hide Nginx server tokens and version number
server_tokens off;
# set max post size (for file upload)
client_max_body_size 16m;
client_body_buffer_size 128k;
location / {
try_files $uri $uri/ index.php?$args;
}
index index.php index.html index.htm;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass ${PHP_HOST}:9000;
fastcgi_index index.php;
fastcgi_read_timeout 300;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED $document_root/$fastcgi_path_info;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
Mám nasledujuci problém, na tejto adrese mám dostupnú Nette aplikáciu
http://127.0.0.1:5001/
toto funguje zatial správne no akonáhle
chcem už navštiviť konkrétnu adresu napríklad
http://127.0.0.1:5001/admin/auth/login
tak to spraví redirect na
‘http://127.0.0.1/admin/auth/login/’ kde odstráni port a tam už dostupna
tá Nette aplikácia nieje.
S kolegom som skúšal nastaviť aj proxy
http:
proxy:
- 0.0.0.0/00
tak aby sme skusili všetky možnosti, no ani jedna možno nezabrala. Nestretol sa niekto už s týmto problémom. Ide o Nette 2.4 a php 7.4. Za každý napada ďakujem!
- nightfish
- Člen | 518
@KristianSubweb
V Nette configu ponechej nastavení http.proxy
a zkus do
konfigurace Nginxu za fastcgi_param PATH_INFO $fastcgi_path_info;
přidat fastcgi_param HTTP_X_FORWARDED_PORT 5001;
.
Teoreticky by tohle nastavení mohlo vést k tomu, že se v rámci
RequestFactory
(tady)
použije číslo portu 5001 místo 80, což by následně mělo opravit
vygenerované odkazy.
- KristianSubweb
- Člen | 146
nightfish napsal(a):
@KristianSubweb
V Nette configu ponechej nastaveníhttp.proxy
a zkus do konfigurace Nginxu zafastcgi_param PATH_INFO $fastcgi_path_info;
přidatfastcgi_param HTTP_X_FORWARDED_PORT 5001;
.
Teoreticky by tohle nastavení mohlo vést k tomu, že se v rámciRequestFactory
(tady) použije číslo portu 5001 místo 80, což by následně mělo opravit vygenerované odkazy.
Skusil som a nezabralo stále ten istý problém dokonca v RequestFactory som to dumpoval a bolo to nastavné správne no stále to robí ten redirect.
Editoval KristianSubweb (3. 10. 10:45)