Nginx 구성 : 다른 포트에 대한 프론트 엔드 리버스 프록시


22

포트 5010에서 80이 아닌 요청을 제공하는 작은 웹 서버가 있습니다.

nginx를 프런트 엔드 프록시로 사용하여 포트 80에서 요청을 수신 한 다음 해당 요청을 포트 5010에서 처리하도록하고 싶습니다.

nginx를 성공적으로 설치했으며 Ubuntu Karmic에서 원활하게 실행됩니다.

그러나 기본 nginx.conf를 재구성하려는 시도는 성공하지 못했습니다.

서버 지시문에 포트 5010의 청취 인수를 포함 시키려고했습니다.

또한 proxy_pass 지시문을 시도했습니다.

포트 포워딩을하기 위해 변경해야 할 사항이나 설정해야 할 사항에 대한 제안.

답변:


22

nginx가 포트 5010뿐만 아니라 80을 수신하는 서버가 아니라고 가정합니다. 맞습니까? 5010에서 듣고있는 것이 있는데 그 서버에 nginx 프록시를 사용하고 싶습니까?

이 경우 과거에 성공적으로 사용한 훌륭한 샘플 구성이 있습니다.

server {
        listen       80;
        server_name  <YOUR_HOSTNAME>;
        location / {
            proxy_pass         http://127.0.0.1:5010/;
            proxy_redirect     off;

            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

            client_max_body_size       10m;
            client_body_buffer_size    128k;

            proxy_connect_timeout      90;
            proxy_send_timeout         90;
            proxy_read_timeout         90;

            proxy_buffer_size          4k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;
        }
}

나는 그것이 당신이 찾고있는 것을 성취해야한다고 생각합니다. 행운을 빕니다!


이것은 macOS brew nginx에서는 작동하지 않습니다. 서버 주변에 http {} 블록을 추가해야합니다. 그렇지 않으면 : nginx : [emerg] "server"지시문은 허용되지 않습니다
muenalan

13

매우 미니멀리즘-프록시 설정을 기본값으로 두었지만 필요에 맞게 조정할 수 있습니다.

# NGINX configuration

# System configuration ##################
worker_processes  3;
events {
    worker_connections  1024;
}
user nobody;

# Web configuration #####################
http {
    server {
        listen 80 default;
        location / {
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header   Host             $host;

            proxy_pass http://127.0.0.1:5010/;

        }
    }
}

2
타일러-최소한의 해결책이 좋습니다. 그것이 내가 원하는 것입니다. 내가 아직 serverfault에서 새로운 것을 할 수 있다면 당신에게 포인트를 줄 것입니다
Ted Karmel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.