Nginx: 에러 “server” directive is not allowed here

조회수 4407회

안녕하세요.

nginx -t의 결과가 아래와 같게 나옵니다:

nginx: [emerg] "server" directive is not allowed here in /etc/nginx/sites-enabled/default:8

아래는 /etc/nginx/sites-available/default 파일 코드내용입니다:

server {
        listen 27016;
        server_name 52.79.70.237;
        location / {
                proxy_pass http://127.0.0.1:27016;
       }
}

server {
        listen 80 default_server;
        server_name 52.79.70.237;
        location / {
                proxy_redirect off;
                proxy_pass http://127.0.0.1:3001;
        }
}

이 에러가 왜 나오는지 알고싶습니다.

감사합니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • https://stackoverflow.com/questions/41766195/nginx-emerg-server-directive-is-not-allowed-here/41766811 이거 참고해 보시면 sites-enabled 디렉토리의 파일들은 configuration의 일부만 존재하므로 include 디렉티브를 사용하여 해당 코드 조각(fragment)을 사용하지 않고 그대로를 사용하면 저런 에러가 난다고 합니다. 실제 저 디렉티브는 http 블락 안에 존재해야 한다고 하는데요. 질문자분의 상황과 같은지는 모르겠지만 한 번 확인해 보세요. doodoji 2019.5.30 20:24
  • 그리고 질문을 보면 sites-available 코드를 올렸다고 하셨는데 sites-enabled의 default와 그걸 include하고 있는 conf 파일을 봐야 하지 않을까 싶은데요. doodoji 2019.5.30 20:26
  • 댓글 감사합니다. sites-enabled/default와 알아서 링크가 잘되고 있었고, conf파일에서도 include가 default값 그대로 되어있었습니다. 알 수 없는 사용자 2019.5.30 21:06
  • 만 방금 해결했습니다. 첫번째 server블록 보시면 listen을 27016포트를 하고 있으면 nginx데몬 프로세스가 아마 27016으로 돌아가고 있을겁니다. 그걸다가 27016포트로 프록싱하겠다니까 문법오류가 났나봅니다. 알 수 없는 사용자 2019.5.30 21:07
  • ㅋㅋ 그 상황은 아니었나보네요. 아무튼 해결하셨다니 다행입니다. doodoji 2019.5.30 21:32

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)