nginx에 사이트 사용 가능한 디렉토리가 없습니다.


190

Centos 6에 Nginx를 설치했으며 가상 호스트를 설정하려고합니다. 내가 겪고있는 문제는 /etc/nginx/sites-available디렉토리 를 찾을 수 없다는 것 입니다.

그것을 만들기 위해해야 ​​할 일이 있습니까? Nginx가 탐색되어 실행될 수 있다는 것을 알고 있습니다.


하나의 큰 구성 파일을 더 작은 구성 파일로 분할하려는 경우 내 스크립트를 사용하여 분할 할 수 있습니다. stackoverflow.com/a/38635284/1069083
rubo77

답변:


354

글쎄, 우분투 유지 패키지는 데비안의 아파치 설정을 모방하는 규칙으로 nginx 자체에는 설정이 없다고 생각합니다. 동일한 설정을 에뮬레이션하려는 경우 직접 만들 수 있습니다.

블록 을 작성 /etc/nginx/sites-available하고 /etc/nginx/sites-enabled편집 한 http후이 /etc/nginx/nginx.conf줄을 추가하십시오.

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

물론 모든 파일은 안에 sites-available있으며 sites-enabled활성화하려는 파일에 대한 심볼릭 링크를 만듭니다 .


23
RedHat 친척 (예 : Fedora 및 Centos)에는 데비안 / 우분투와 같은 기능이 없습니다. @Mohammad가 말했듯이 복사하기는 쉽지만 기본값이 없으면 초보자에게는 혼란 스럽습니다.
MGP

36
하나님, 나는 이것을 알아 내기 위해 얼마나 많은 검색을했는지 말할 수 없습니다. Amazon Linux AMI 릴리스 2014.03을 사용하고 있습니다. 이 디렉토리는 rpm 파일 (nginx 1.6.2 또는 nginx 1.7.5)에서 nginx를 설치하면 자동으로 생성되지 않지만 많은 nginx 구성 예제에서 이러한 내용을 참조합니다. nginx가 올바르게 설치되었는지 궁금합니다.
so_mv

1
감사합니다. symlink는 어떻습니까? 내 구문이 맞습니까? include 문에 의해 발견되지 않는 것 같습니다.
0과 1

7
나는 그것을 고정과 같은 신선하고 만든 SYM 링크를 시작 : sudo ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled/test.conf하지 않도록 전체 경로가 차이를 만든 이유 : /
제로 - 및 - 사람을

1
정말 고맙습니다. 소스에서 nginx를 빌드하고 우분투가 이것을했는지 몰랐습니다.
Sean Norwood

66

당신이 더 직접적인 접근 방법 사이에 심볼릭 링크로 혼란을하지 않는 한 원하는 경우 /etc/nginx/sites-available/etc/nginx/sites-enabled다음을 수행 :

  1. nginx.conf 파일을 찾으십시오. 아마/etc/nginx/nginx.conf
  2. http 블록을 찾으십시오.
  3. http 블록 어딘가에 다음과 같이 쓰십시오. include /etc/nginx/conf.d/*.conf;이것은 nginx에게 conf.d디렉토리에서 끝나는 파일을 가져 오도록 지시 .conf합니다. (나는 알고있다 : 디렉토리에 디렉토리가있을 수있는 것이 이상하다 ..)
  4. conf.d디렉토리가 존재하지 않는 경우 (3 단계의 경로에 따라) 디렉토리를 작성하십시오 . 올바른 권한 / 소유권을 부여하십시오. 루트 또는 www-data 일 수 있습니다.
  5. 별도의 구성 파일 (있는 것처럼 /etc/nginx/sites-available)을 디렉토리로 이동하거나 복사하십시오 conf.d.
  6. nginx를 다시로드하거나 다시 시작하십시오.
  7. 아이스크림 콘을 먹습니다.

nginx를 다시로드 / 다시 시작하는 한 여기에서 디렉토리에 .conf넣은 모든 파일 conf.d이 활성화됩니다.

참고 : 당신은 사용할 수 있습니다 conf.dsites-enabled+ sites-available원하는 경우 동시에 방법을. 을 사용하여 dev 상자에서 테스트하고 싶습니다 conf.d. 심볼릭 링크 및 심볼릭 링크보다 빠릅니다.


13
심볼릭 링크 "mess"의 요점은 구성 파일을 보존하고 가상 호스트를 매우 쉽게 비활성화 할 수 있다는 것입니다. 접근 방식을 사용하는 경우 심볼릭 링크를 편리하게 삭제하는 것보다 덜 복잡하다고 생각하지 않는 사이트를 비활성화하려면 conf.d에서 파일을 이동해야합니다.
bviktor

@bviktor 나중에 들려요. 나는 실제로 두 가지 방법을 사용합니다. 방금 사이트 사용 가능 사이트와 사이트 사용 가능 디렉토리 사이에서 앞뒤로 바운스하는 것이 더 지루한 [구성 테스트시] 발견되었습니다. 프로덕션 환경에서는 심볼릭 링크를 사용할 계획입니다.
elbowlobstercowstand

1
그래, 나는 ln -s를 타이핑하는 ../sites-available/...것은 물건을 빠르게 테스트 할 때 다소 지루하지만, 장기적으로는 편리하고 관리하기 쉽다는 것에 동의한다.
bviktor

@bviktor 경로 이름을 쓸 때 터미널에서 탭을 누르고 자동 완성을 볼 수있는 기능에 감사드립니다. 내가 누군가와 함께 비디오를 볼 때까지 한동안 그것에 대해 알지 못했습니다. 나는 그들이 300 wpm에 타자했다고 생각했다! 그리고 나는 붙 잡았다. :)
elbowlobstercowstand

12
@bvktor 확장명이 .conf 인 사이트 만 포함됩니다. 사이트를 활성화하지 않으려면 사이트 구성 파일에 .disabled 확장자를 추가하십시오. 이는 CentOS / Apache의 표준 규칙이며 Nginx에도 적용됩니다.
SenG

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.