무슨 일이야?
때문에 당신은 데비안이나 우분투를 사용하고 있어야합니다 악 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끝나지 않는 파일을 역으로 검색하거나을 사용하십시오 .).conffind /etc/nginx/conf.d -not -name "*.conf"grep -v
위의 모든 내용뿐만 아니라 includeDebian / Ubuntu에서 사용 하는 특정 지시문에 유의하십시오 — /etc/nginx/sites-enabled/*— sites-enabled와 달리 파일 이름 접미사가 지정되지 않았습니다 conf.d.
- 이것이 의미하는 것은 언젠가는 빠르게 내 파일 또는 둘을 편집하기로 결정한 경우이다
/etc/nginx/sites-enabled, 당신은 emacs같은 백업 파일을 생성 default~하면 모두 한 갑자기, 다음, default및 default~사용 지침을 따라하는 것은도 제공하지 않을 수 있습니다, 활성 구성을 포함 경고가 발생하고 디버깅 세션이 오래 지속될 수 있습니다. (예, 그것은 나에게 일어난 일입니다. 그것은 해커 톤 중이었고, 내 conf가 작동하지 않는 이유에 완전히 당황했습니다.)
따라서 나는 그것이 sites-enabled순수한 악이라고 확신합니다 !
www-data별도의 주제입니다. 대부분의 운영 체제는 포트 80에 루트로 바인딩 한 후 프로세스가 실행할 수있는 권한이 낮은 별도의 사용자를 정의합니다. 구성 파일에 정의되어 있습니다. 거기에서 기본적인 보안 관행을 적용하십시오. 사용자가 웹 서버에 쓸 필요가없는 것에 쓰지 말고, 의도적이지 않은 한 다른 사용자가 파일에 쓰지 못하게하십시오.