2014-03-03 4 views
3

AWS EC2 인스턴스에서 실행중인 nginx 1.4.5 서버가 있습니다. 두 개의 conf 파일 (default.confmyapp.conf)이 있습니다. default.conf은 localhost를 청취하고 myapp.confmyapp.mydomain.com을 수신합니다.

그러나 브라우저에 myapp.mydomain.com을 입력해도 항상 default.conf이로드됩니다. log_formatnginx.conf 파일로 변경했습니다. 각 요청의 서버 이름을 확인하려면 "$server_name" 필드를 추가하십시오. 나는 항상 localhost이라는 것을 알았다.

아무도 이것에 대해 어떤 생각을 갖고 있습니까? 구성 정보와

업데이트

nginx.conf

server { 
    listen  80; 
    server_name localhost; 

    #charset koi8-r; 
    #access_log /var/log/nginx/log/host.access.log main; 

    location/{ 
     root /usr/share/nginx/html; 
     index index.html index.htm; 
    } 
... 
} 

myapp.conf

server { 
    listen 80; 
    server_name myapp.mydomain.com; 

    access_log /var/log/nginx/myapp.log; 

    location/{ 
     add_header P3P 'CP="CAO PSA OUR"'; 
     proxy_pass http://127.0.0.1:8080/myapp/; 
     set $ssl off; 
     if ($scheme = https) { 
      set $ssl on; 
     } 
     proxy_set_header X-Forwarded-Ssl $ssl; 
     proxy_set_header Host $host; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-Real-IP $remote_addr; 
    } 
} 

내가 두 개의 방화벽 뒤에 나는 네, 하나는 먼저, iptable이고, 다른 하나는 AWS 구축 보안 그룹에 있음

+0

설정을 게시 할 수 있습니까? 프록시 뒤에 있지 않은지 확인하십시오. –

+0

내가 생각할 수있는 유일한 것은 아마도 당신이 nginx conf에없는 것을 정의했을 때'www' 사이트에 액세스하려고 시도했을 것입니다. 그 경우입니까? 서버 이름에'www' 대안을 추가하십시오. if 그것은 적용 가능합니다. –

답변

0

나는 당신이 브라우저와 nginx를 같은 머신에서 돌리고 있다고 가정하고있다. 이 경우 myapp.mydomain.com은 아마도 localhost 또는 127.0.0.1으로 해석되므로 nginx는 localhost로 이동한다고 생각합니다. 당신의/등이 추가

봅니다/hosts 파일 :

<external IP of your host> myapp.mydomain.com 

당신은 또한 다른 컴퓨터에서의 nginx 서버에 액세스 시도해야합니다.

+0

AWS ec2 인스턴스에서 nginx가 실행되고 있지 않습니다. 브라우저가 내 랩톱에 있습니다. –

+0

그런 다음 왜 도대체 localhost가 필요합니까? – Rico

+0

localhost에서 기본값을 실행하지 않습니다. 만약 그렇다면 127.0.0.1 : 80;을 들으실 수 있습니다. 나는 복사에서 server_name의 누락 된 세미콜론이 손실되었다고 가정하지만 오타가 있는지 확인해야합니다. – Melvyn

관련 문제