Presmerovanie pri proxy s URL s portom na URL bez portu

KristianSubweb
Člen | 146
+
0
-

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
+
0
-

@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
+
0
-

nightfish napsal(a):

@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.

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)