2015-01-05 2 views
1

NGINX를 기본 웹 서버로 사용하여 전용 Linux (Ubuntu Server 14.04) 서버에서 CMS (Go로 프로그래밍) 설정을 마쳤습니다. Go (및 Node.js) http 웹 서버 이외에 정적 컨텐츠를 제공하고 각각의 파일 서버를 사용하는 대신 활용할 수 있습니다.GO/Node.js/PHP 웹 사이트 디렉토리 규칙/우수 사례

이것은 Linux, 전담 서버 및 일반용 응용 프로그램을 온라인으로 배포 한 첫 경험이기 때문에 우리가 저장하는 곳 (이상적으로는 모든 다른 웹 사이트/웹 응용 프로그램)에 대한 좋은 컨벤션에 대한 의견을 듣고 자합니다.

기본적으로 NGINX는/usr/share/nginx /를 사용하여 콘텐츠를 제공합니다. 나는 그것을 우리가 원하는 무엇이든 바꾸는 것이 세계에서 가장 쉬운 일이라는 것을 알고 있습니다. 그러나 저는 처음부터 일을 바로하고 싶습니다.

지금은 CMS (Go 응용 프로그램)를/home/[myuser]/gocode/src/[projectname]에 저장합니다. 이것은 go 응용 프로그램이 상주하는 곳이지만 NGINX에서 이상적으로 제공 할 "공용"및 "미디어"라는 폴더가 있습니다.

웹 서버와 호스트 Apache-, NGINX- 등의 응용 프로그램을 동일한 전체 루트 위치에서 전환 할 수 있기를 바란다. 이제/var/www 또는/var/www/html을 내 루트 디렉토리로 사용하십시오. 그 이유는 아파치가 기본적으로이 위치를 사용하기 때문에 내 응용 프로그램 파일 - 내 정적 파일 만 제공하고 싶지 않기 때문입니다. 다른 것들은/home/user/public_html을 사용하고있는 것처럼 보이지만 다른 웹 서버와 프로그래밍 언어/플랫폼에서는 잘 작동하지 않을 것입니다.

PHP/Apache, Go/NGINX, Node.js 등 모든 응용 프로그램을 이상적으로 모으거나 배치 할 수있는 좋은 근거가 있습니까?

go는 go와 node.js로 태그를 지정했습니다. 왜냐하면 go는 제 1 차 프로그래밍 언어이고 내 애플리케이션은 대부분 해당 언어로되어 있기 때문입니다. 그러나 이전의 PHP 및 Node.js 응용 프로그램 (이상적으로는 같은 루트 디렉토리에 있음)을 호스팅하고 싶습니다. 그런 다중 플랫폼 환경을 구성하는 방법과 관련하여 나에게 공유 할 금괴가 있는지에 따라 다릅니다.

답변

0

모든 응용 프로그램을 /opt에 넣었습니다. go 프로그램을 빌드하면 하나의 바이너리로 끝납니다.

gocode/src/github.com/someorg/foo 

당신은 실행됩니다 : 예를 들어 프로젝트가 있다고 가정

go build -o /tmp/foo 

를 그리고 서버에 그것을 넣어 : 정적 내용의

/opt/foo/foo 

그냥 파일을 복사 :

/opt/foo/public/images/logo.png 
/opt/foo/public/styles/site.css 
/opt/foo/public/scripts/site.js 

so 이 예에서는 4 개의 파일 만 있고 .go 개의 파일은 업로드하지 않으므로 로컬로 가지고있는 폴더 구조와 일치시킬 필요가 없습니다.

nginx의 경우 포트로 트래픽을 전달하기 만하면되므로 파일이 어디에 있는지 알 필요가 없습니다. Go는 공공 및 미디어 디렉토리에서 파일을 제공하는 것 이상의 기능을합니다.

쓰기 가능한 폴더가 필요한 경우 (대부분의 웹 앱은 읽기 전용 임) 해당 데이터를 /tmp 또는 /var에 저장하는 것이 좋지만 애플리케이션과 함께 저장하지 않는 것이 좋습니다.

관련 문제