하위 도메인을 사용하여 NGINX를 통해 HTTP(또는 TCP) 요청을 특정 포트로 전달

하위 도메인을 사용하여 NGINX를 통해 HTTP(또는 TCP) 요청을 특정 포트로 전달

원격 웹 서버를 통해 로컬 웹 서버를 노출하고 싶습니다. 원격 호스트에는 이미 Nginx와 웹 애플리케이션(웹메일)이 있습니다. 원격 서버는 포트 80을 원격 8080으로 전달하는 로컬 웹 서버의 게이트웨이로 작동합니다. 작동 중입니다.

이제 하위 도메인(예: bridge.mydomain.co) 요청을 전달된 포트로 전달하려고 합니다. 나는 이것을 사용해 보았습니다 :

server {
    listen 80;
    listen [::]:80;
    server_name bridge.mydomain.co;

    location / {
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

로컬 웹 서버가 복잡한 PHP 애플리케이션을 실행 중이므로 다음과 같은 오류가 발생합니다.

다음과 같은 오류가 40개 있습니다.

다음 콘텐츠 보안 정책 지시어 "default-src https: data: 'unsafe-inline' 'unsafe-eval'"을 위반했기 때문에 스타일시트 '' 로드를 거부했습니다. 'style-src-elem'은 명시적으로 설정되지 않았으므로 'default-src'가 대체 수단으로 사용됩니다.

다음 중 56개:

콘텐츠 보안 정책 지침 "default-src https: data: 'unsafe-inline' 'unsafe-eval'"을 위반했기 때문에 '' 스크립트 로드를 거부했습니다. 'script-src-elem'은 명시적으로 설정되지 않았으므로 'default-src'가 대체 수단으로 사용됩니다.

전달된 포트를 직접 노출할 수 있다는 것을 알고 있습니다. 이는 완벽하게 작동합니다. 하지만 TLS 종료 및 전달을 위해 (결국) nginx를 사용하고 싶습니다.

이 문제에 대해 읽으면 PHP의 로컬 웹 서버가 요청을 거부하는 것 같습니다. 그러나 나는 그것을 고치는 방법을 모른다.

도움이 필요하세요?

답변1

마지막에 알아내세요. 다음 헤더를 전달/추가해야 했습니다.

server {
    listen 80;
    listen [::]:80;
    server_name bridge.mydomain.co;

    proxy_pass_header server;

    location / {
        proxy_set_header Host $host;
    add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' http://bridge.mydomain.co http://bridge.mydomain.co:8080  http://bridge.mydomain.co/core/img/favicon-touch.png; img-src 'self' http://bridge.mydomain.co http://bridge.mydomain.co:8080;";
        proxy_pass http://bridge.mydomain.co:8080;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

}

나는 포트 버전이 필요하지 않으며 "기본값"에 포함되는 일부 헤더가 누락되었다고 생각합니다. 따라서 개선의 여지가 있습니다.

여기서 설명을 읽고 싶다면 나보다 지식이 풍부한 사람들이 제공한 자료가 있습니다.https://stackoverflow.com/questions/33300111/how-to-override-content-security-policy-of-site-a-while-using-nginx-proxy-pass-o

관련 정보