2013-03-11 3 views
14

내가 리버스 프록시 미니멀를 실행하기 위해 노력하고있어 작동하지 localhost를 내놓았다하려면 다음 그러나의 nginx 간단한 proxy_pass는

events { 
    worker_connections 4096; 
} 

http { 
    server { 
     listen 80; 
     location/{ 
      proxy_pass http://127.0.0.1:3000/; 
     } 
    } 
} 

`

,이 서버에 액세스 할 때, I 포트 3000에서 실행중인 서버의 응답 대신 표준 "nginx 페이지 시작"을 받으십시오.

기계에 ssh를 연결하고 curl http://127.0.0.1:3000/을 실행하면 원하는 결과가 나타납니다. 결국 포트에서 해당 서버를 실행했습니다. 80 그리고 잘 작동 했으므로 그것은 역방향 프록시 설정과 관련이 있습니다.

+0

같은 설정 내 devbox에 잘 작동했다. 웹 서버의 네트워크에 문제가있는 것 같습니다. 네트워크를 다시 시작하려고 시도 했습니까? –

+0

다른 conf 파일에 다른 프록시 지시문을 사용하지 않으셨습니까? proxy.conf? – Pixou

+0

후행 슬래시를 제거해도 아무런 문제가 없습니까? – Bart

답변

22

나는 정확히 같은 문제가있었습니다. 난 그냥 내 nginx.conf 파일에 한 줄을 주석 : 교환이 날은 아직 언급하지 때문에

 
include /etc/nginx/sites-enabled/*; 

는 답변을 통해

 
#include /etc/nginx/sites-enabled/*; 
+9

이것은 나를 위해 일했습니다. 고마워요. 정확하게 사용할 수 없게하는 것은 무엇입니까? – bengem

+0

당신이 말하는 것은 효과가 없습니다. '/ etc/nginx' 폴더 또는 Configs의 아무 곳에 나 주석을 달기 위해'include/etc/nginx/sites-enabled/*; '를 가지고 있지 않아서 여전히 문제가 있습니다. – Green

+0

Green 조금 늦었지만, 이 문제는 나 자신. 제 경우의 include 파일은'/etc/nginx/conf.d/ *. conf'입니다. 이것은 내 사이트 설정과 충돌하는 기본 사이트의 설정을 포함합니다. 귀하의 경우 그것은 프록시 설정 자체에 문제가 될 수도 있습니다 – codemonkey

4

Explainng 비제이의 포스트로 변경되었습니다.

표준 nginx.conf 파일을 사용하고 있으므로 사이트 사용 가능 디렉토리를 주석 처리해야 할 수 있습니다. 해당 행은 이미 http 지정 문에 있음을 알 수 있습니다. 표준 구성을 사용하는 경우 다른 http 지정 문에 http 지정 문을 다시 정의합니다. http 지시문이 아닌 서버 지시문 만 갖도록 사이트 파일을 업데이트 할 수도 있습니다.

표준 틱 nginx.conf 파일 : 내

worker_processes 4; 

error_log /var/log/nginx/error.log; 
pid  /var/run/nginx.pid; 

events { 
    worker_connections 1024; 
} 

http { 

    include  /etc/nginx/mime.types; 
    default_type application/octet-stream; 

    access_log /var/log/nginx/access.log; 

    sendfile on; 
    tcp_nopush on; 
    tcp_nodelay on; 

    keepalive_timeout 65; 

    gzip on; 
    gzip_http_version 1.0; 
    gzip_comp_level 5; 
    gzip_proxied any; 
    gzip_vary off; 
    gzip_types text/plain text/css application/x-javascript text/xml application/xml application/rss+xml application/atom+xml text/javascript application/javascript application/json text/mathml; 
    gzip_min_length 1000; 
    gzip_disable  "MSIE [1-6]\."; 

    server_names_hash_bucket_size 64; 
    types_hash_max_size 2048; 
    types_hash_bucket_size 64; 
    client_max_body_size 1024; 

    include /etc/nginx/conf.d/*.conf; 
    include /etc/nginx/sites-enabled/*; 
} 

예를 compatiable 사이트 파일 사이트를 사용 :뿐만 아니라 도움이 될 수 있습니다에서 링크 확인

server { 
    server_name {server name}; 
    listen 80; 
    access_log /var/log/nginx/access.log; 
    error_log /var/log/nginx/error.log; 
    location/{ 
     proxy_pass http://example.com:8080; 
     proxy_set_header Host $host; 
    } 
} 
+0

당신이 말하는 것은 효과가 없습니다.나는 어떤 include/etc/nginx/sites-enabled/*;를 nginx 폴더에 저장하지 않고이 문제를 경험한다. – Green

-1

에 사이트가 활성화 된 사이트-가능 . 아무 곳에도 심볼릭 링크가 없었기 때문에 nginx는 설정을 읽지 않았습니다. 내 경우 그것은

ls -lh /etc/nginx/sites-enabled 
lrwxrwxrwx 1 root root 23 Feb 19 11:11 default -> sites-available/default 

대신

ls -lh /etc/nginx/sites-enabled 
lrwxrwxrwx 1 root root 23 Feb 19 11:11 default -> ../sites-available/default