nginx 파일을 위한 최적의 경로

nginx 파일을 위한 최적의 경로

저는 항상 파일 paths의 종류 nginx와 위치를 결정하는 데 어려움을 겪었습니다. 아시다시피, 우리는 두 차 모두 주차할 수 있는 위치를 변경할 수 있습니다.www우리의 디렉토리 web app와 관련 log파일.

내가 발견한 문제는 호출 을 위한 사용자 스크립트 bash와 이러한 파일의 다양한 부분에 액세스해야 하는 스크립트 는 물론 이러한 파일에 대한 업데이트는 말할 것도 없고 다양한 파일의 예약된 네트워크 복사본이 있다는 것입니다.RubySSHcrontabnginx

다양한 배포판 의 패키지 설치에서 권장하는 정적 경로를 준수했지만 접근성 측면에서 최적이 아니기 때문에 문제가 nginx자주 발생했습니다 . 그래서 저는 다양한 주요 경로를 조사하고 좋은 수준의 보안을 유지하면서 이 모든 것을 염두에 두고 설계된 경로를 선택했습니다. 나는 다양한 위치를 보았고 이제 다시 이 문제에 직면했으므로( 작동하지 않음, 다양한 항목에 대한 문제 등) 이 모든 위치가 어디에 있어야 하는지 물어보고 싶다고 생각했습니다.permissionspathlinuxcrontabspermissions

내 앱은 표준 HTML 애플리케이션이 아닙니다 static. 실행 중인 Rack애플리케이션 과 들어오는 업로드 등이 있는 애플리케이션이 있습니다 .app serverGemfile

제가 평가하는 두 곳은 다음과 같습니다.

그러나...이것은 내가 디렉토리에 대해 읽은 것입니다 /usr:

/usr은 파일 시스템의 두 번째 주요 섹션입니다. /usr은 공유 가능한 읽기 전용 데이터입니다. 이는 /usr이 다양한 FHS 호환 호스트 간에 공유 가능해야 하며 기록되어서는 안 된다는 것을 의미합니다. 호스트별로 다르거나 시간에 따라 달라지는 모든 정보는 다른 곳에 저장됩니다.

대형 소프트웨어 패키지는 /usr 계층 아래의 직접 하위 디렉토리를 사용해서는 안 됩니다.

그래서 나는 길을 잃었습니다. 스크립트 작성에 번거로움을 최소화할 수 있는 읽기/쓰기 가능한 파일 위치를 추천해 줄 수 있는 사람이 있나요 cron?

답변1

웹사이트 파일을 호스팅하기 위한 "반드시" 적절한 위치는 입니다 /srv/www. 거기에서 나는 일반적으로 이것을 도메인 관련 디렉토리로 "분할"합니다.

따라서 전체적으로 /srv/www/example.com다음과 같은 구조/하위 디렉터리가 있습니다.

  • public해당 도메인/웹 사이트에 바인딩된 공개적으로 액세스 가능한 파일을 저장합니다.
  • logs해당 도메인에 바인딩된 모든 로그 파일(NGINX, PHP-FPM 등)을 저장합니다.
  • sessions사용자별 세션(예: PHP 세션)을 저장합니다.

PHP-FPM을 사용하든 다른 "스크립트 데몬"을 사용하든 데몬 설정을 조정하고 파일을 올바르게 chmod/chown하여 권한을 올바르게 설정하고 싶습니다. 당신을 보호해 주는 마법의 장소는 없습니다.권한 모델 구성. 보다NGINX 및 PHP-FPM. 내 권한은 어떻게 되어야 합니까?- 이는 PHP-FPM에 관계없이 대부분의 웹사이트 설정에 매우 잘 적용됩니다.

  • 적절한 격리를 위해 각 웹사이트에 대해 별도의 사용자를 추가합니다. 예:example
  • 해당 사용자로 실행되도록 스크립트 데몬을 구성하십시오.
  • 웹 서버(NGINX) 사용자를 사이트 사용자의 그룹 구성원으로 지정하세요 usermod -a -G example nginx. 이를 통해 NGINX 읽기에서는 그룹 권한이 읽기로 설정된 파일을 읽을 수 있으며, 그룹 권한 비트를 간단히 제거하여 읽지 않기를 원하는 파일(구성 파일)을 보호할 수 있습니다.chmod

결국에는 권한 문제가 발생하지 않습니다. 모든 것이 동일한 사용자에 의해 소유되고 "실행"됩니다!

답변2

질문이 정말 모호하기 때문에 이것을 종료하기로 투표했습니다. 또한 문제의 원인이 아닌 상황에 대해 도구를 비난하려고 합니다. MAC 하위 시스템에서 수행할 수 있는 작업과 수행해야 하는 작업 및 패키지 관리 시스템이 구성 파일을 처리하는 방법에는 어느 정도 제한이 있습니다. 그러나 이것이 어떤 배포판인지 알려주지 않으셨기 때문에 제안을 할 수 있는 위치에 있는 것은 물론이고 그것이 관련성이 있는지도 알 수 없습니다.

이 문제를 해결하려고 할 때 시작해야 할 부분은 어떤 사용자 계정이 어떤 파일에 액세스해야 하는지에 대한 포괄적인 목록을 만들고(해당 파일의 위치를 ​​고려하기 전에) 적절한 권한 모델을 작업하는 것입니다.

확실히, /usr 아래에 스크립트나 콘텐츠를 저장하는 것이 적절할 가능성은 거의 없습니다.

관련 정보