무슨 일이야?
때문에 당신은 데비안이나 우분투를 사용하고 있어야합니다 악 sites-available
/ sites-enabled
로직이 사용되지 않습니다 nginx를 상류 포장 에서 http://nginx.org/packages/ .
두 경우 모두의 표준 include
지시문을 사용하여 구성 규칙으로 구현됩니다 /etc/nginx/nginx.conf
.
다음 /etc/nginx/nginx.conf
은 nginx.org의 공식 nginx 업스트림 패키지에 대한 스 니펫입니다 .
http {
…
include /etc/nginx/conf.d/*.conf;
}
다음 /etc/nginx/nginx.conf
은 데비안 / 우분투 의 스 니펫입니다 .
http {
…
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
따라서 NGINX의 관점에서 유일한 차이점은 파일을 conf.d
더 빨리 처리해야한다는 것입니다. 따라서 서로 자동으로 충돌하는 구성이있는 경우의 파일이 파일 conf.d
보다 우선 sites-enabled
합니다.
모범 사례는 conf.d
입니다.
당신은 사용해야 /etc/nginx/conf.d
하는 표준 규칙, 그리고 어디에서나 작동합니다 같이.
사이트를 비활성화해야하는 경우 파일 이름을 바꾸면 더 이상 .conf
접미사, 매우 쉽고 간단하고 오류 방지 기능 이 없어집니다 .
sudo mv -i /etc/nginx/conf.d/default.conf{,.off}
또는 사이트 를 활성화 하는 반대의 경우 :
sudo mv -i /etc/nginx/conf.d/example.com.conf{.disabled,}
피하십시오 sites-available
및 sites-enabled
모든 비용.
sites-available
/ 를 사용해야 할 이유가 전혀 없습니다 sites-enabled
.
어떤 사람들은 언급 nginx_ensite
하고 nginx_dissite
그들이 결석이야 - 스크립트 -이 스크립트의 이름은이 사태의 나머지 부분보다 더 나쁘다 - 그러나 이러한 스크립트는 어디에서도 발견 할 수있다 nginx
(도 아마 우분투)도 데비안의 패키지 또한 자체 패키지로 제공되지 않으며, 단순히 두 디렉토리 사이에서 파일을 이동 및 / 또는 연결하기 위해 비표준 타사 스크립트가 필요합니까?!
그리고 스크립트를 사용하지 않으면 (실제로 위와 같은 현명한 선택) 사이트를 관리하는 방법에 대한 문제가 있습니다.
- 당신은에서 심볼릭 링크를 만들려면 어떻게해야합니까
sites-available
에를 sites-enabled
?
- 파일을 복사 하시겠습니까?
- 파일을 옮기시겠습니까?
sites-enabled
?의 위치에서 파일을 편집하십시오 .
위의 내용은 여러 사람들이 시스템 관리를 시작하거나 빠른 결정을 내릴 때까지 해결해야 할 사소한 문제처럼 보일 수 있습니다.
이것은 우리에게 다음을 가져옵니다.
파일을 안전하게 제거 할 수 sites-enabled
있습니까? 소프트 링크입니까? 하드 링크? 아니면 구성의 유일한 사본입니까? 구성 지옥의 주요 예.
어떤 사이트가 사용 중지 되었습니까? (를 사용하면 —로 conf.d
끝나지 않는 파일을 역으로 검색하거나을 사용하십시오 .).conf
find /etc/nginx/conf.d -not -name "*.conf"
grep -v
위의 모든 내용뿐만 아니라 include
Debian / Ubuntu에서 사용 하는 특정 지시문에 유의하십시오 — /etc/nginx/sites-enabled/*
— sites-enabled
와 달리 파일 이름 접미사가 지정되지 않았습니다 conf.d
.
- 이것이 의미하는 것은 언젠가는 빠르게 내 파일 또는 둘을 편집하기로 결정한 경우이다
/etc/nginx/sites-enabled
, 당신은 emacs
같은 백업 파일을 생성 default~
하면 모두 한 갑자기, 다음, default
및 default~
사용 지침을 따라하는 것은도 제공하지 않을 수 있습니다, 활성 구성을 포함 경고가 발생하고 디버깅 세션이 오래 지속될 수 있습니다. (예, 그것은 나에게 일어난 일입니다. 그것은 해커 톤 중이었고, 내 conf가 작동하지 않는 이유에 완전히 당황했습니다.)
따라서 나는 그것이 sites-enabled
순수한 악이라고 확신합니다 !
www-data
별도의 주제입니다. 대부분의 운영 체제는 포트 80에 루트로 바인딩 한 후 프로세스가 실행할 수있는 권한이 낮은 별도의 사용자를 정의합니다. 구성 파일에 정의되어 있습니다. 거기에서 기본적인 보안 관행을 적용하십시오. 사용자가 웹 서버에 쓸 필요가없는 것에 쓰지 말고, 의도적이지 않은 한 다른 사용자가 파일에 쓰지 못하게하십시오.