>

데비안 서버에서 LEMP 스택과 노드 JS를 사용하고 있습니다. Nginx는 포트 80에서 작동하고 노드 JS는 8080에서 작동합니다. nodejs 앱을 위해 새로운 하위 도메인 인 cdn.domain.com을 만들었습니다. 현재 cdn.domain.com:8080/과 같은 Node JS 애플리케이션에만 액세스 할 수 있습니다. 내가하고 싶은 것은 Nginx를 구성하여 cdn.domain.com에 들어갈 때 포트 80에서 앱을 작동시킬 수 있도록하는 것입니다. nginx 업스트림을 사용하여 수행 할 수 있다고 생각합니다. 그러나 나는 방법을 알 수 없습니다.

  • 답변 # 1

    NGINX는 클라이언트와 백엔드 서버 사이에 터널을 설정할 수 있도록하여 WebSocket을 지원합니다. NGINX가 클라이언트에서 백엔드 서버로 업그레이드 요청을 보내려면 업그레이드 및 연결 헤더를 명시 적으로 설정해야합니다. 예를 들면 다음과 같습니다.

    # WebSocket proxying
    map $http_upgrade $connection_upgrade {
        default         upgrade;
        ''              close;
    }
    
    server {
        listen 80;
        # The host name to respond to
        server_name cdn.domain.com;
        location / {
            # Backend nodejs server
            proxy_pass          http://127.0.0.1:8080;
            proxy_http_version  1.1;
            proxy_set_header    Upgrade     $http_upgrade;
            proxy_set_header    Connection  $connection_upgrade;
        }
    }
    
    

    출처 : http://nginx.com/blog/websocket-nginx/

  • 답변 # 2

    이처럼 간단합니다

    example.com을 도메인 (또는 IP)으로, 8080을 Node.js 애플리케이션 포트로 변경하십시오 :

    server {
        listen 80;
        server_name example.com;
        location / {
            proxy_set_header   X-Forwarded-For $remote_addr;
            proxy_set_header   Host $http_host;
            proxy_pass         "http://127.0.0.1:8080";
        }
    }
    
    

    출처 : https://eladnava.com/binding-nodejs-port-80-using-nginx/

  • 답변 # 3

    이것을 달성 할 수있는 방법입니다

    upstream {
        nodeapp 127.0.0.1:8080;
    }
    server {
        listen 80;
        # The host name to respond to
        server_name cdn.domain.com;
        location /(.*) {
            proxy_pass http://nodeapp/$1$is_args$args;
            proxy_set_header X-Real-IP  $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Real-Port $server_port;
            proxy_set_header X-Real-Scheme $scheme;
        }
    }
    
    

    이 구성을 사용하여 다음과 같이 여러 노드 프로세스간에로드 밸런싱 할 수도 있습니다.

    upstream {
        nodeapp 127.0.0.1:8081;
        nodeapp 127.0.0.1:8082;
        nodeapp 127.0.0.1:8083;
    }
    
    

    포트 8081, 8082 및 8083에서 노드 프로세스를 별도의 프로세스로 실행하는 경우. Nginx는 이러한 서버 프로세스간에 트래픽을 쉽게로드 밸런싱합니다.

  • 답변 # 4

    간단한 :

    server {
        listen   80;
        server_name  p3000;
        location / {
            proxy_pass http://0.0.0.0:3000;
            include /etc/nginx/proxy_params;
        }
    }
    
    

  • 답변 # 5

    업스트림을 정의하여 proxy_pass에서 사용할 수 있습니다

    http://rohanambasta.blogspot.com/2016/02/redirect-nginx-request-to-upstream.html

    server {  
       listen        8082;
       location ~ /(.*) {  
           proxy_pass  test_server;  
           proxy_set_header Host $host;  
           proxy_set_header X-Real-IP $remote_addr;  
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
           proxy_set_header X-Forwarded-Proto $scheme;  
           proxy_redirect    off;  
       }  
    }   
      upstream test_server  
         {  
             server test-server:8989  
    } 
    
    

  • 이전 python - 반복을 사용하는 Kivy 드롭 다운 목록
  • 다음 python - QCalendarWidget을 사용자 정의하는 방법은 무엇입니까?