Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go/Node.js/PHP+NGINX/apacheweb根目录约定/最佳实践_Node.js_Apache_Nginx_Go_Directory Structure - Fatal编程技术网

Go/Node.js/PHP+NGINX/apacheweb根目录约定/最佳实践

Go/Node.js/PHP+NGINX/apacheweb根目录约定/最佳实践,node.js,apache,nginx,go,directory-structure,Node.js,Apache,Nginx,Go,Directory Structure,我刚刚在专用的Linux Ubuntu Server 14.04服务器上完成了在Go中编程的CMS的设置,NGINX是我的主要Web服务器,我希望除了Go和Node.js http Web服务器之外,还利用它来提供静态内容,而不是使用它们各自的文件服务器 由于这是我第一次使用Linux、一般专用服务器和在线部署Go应用程序,我非常有兴趣听取您对良好惯例的看法,最好是我们存储所有不同网站/Web应用程序的地方 默认情况下,NGINX使用/usr/share/NGINX/从提供内容。我知道这是世界上

我刚刚在专用的Linux Ubuntu Server 14.04服务器上完成了在Go中编程的CMS的设置,NGINX是我的主要Web服务器,我希望除了Go和Node.js http Web服务器之外,还利用它来提供静态内容,而不是使用它们各自的文件服务器

由于这是我第一次使用Linux、一般专用服务器和在线部署Go应用程序,我非常有兴趣听取您对良好惯例的看法,最好是我们存储所有不同网站/Web应用程序的地方

默认情况下,NGINX使用/usr/share/NGINX/从提供内容。我知道这是世界上最简单的事情,可以把它变成我们想要的任何东西,但我喜欢从一开始就做正确的事情

现在,我将CMS Go应用程序存储在/home/[myuser]/gocode/src/[projectname]中。这是go应用程序所在的地方,但我也有文件夹、公共文件和媒体,这些都是我理想的NGINX服务对象

由于我希望能够在同一个总根目录位置内切换Web服务器并托管Apache-、NGINX-、etc-应用程序,因此我现在对使用/var/www或/var/www/html作为根目录还有第二个疑问。原因是apache在默认情况下使用这个位置,我不想为我的应用程序文件提供服务——只提供静态文件。其他人似乎正在使用/home/user/public_html,但同样,这对于不同的web服务器和编程语言/平台来说并不适用

关于我们理想地将所有PHP/Apache、Go/NGINX、Node.js等应用程序收集/放置在哪里,您有什么好的论据吗

我用go和node.js标记了它,因为go是我选择的主要编程语言,我的大多数应用程序都将使用该语言。不过,我也确实希望托管我的旧PHP和Node.js应用程序,最好是在同一根目录中,这取决于您是否有关于如何组织这样一个多平台环境的金块与我分享。

我将所有应用程序都放在/opt中。当你建立你的围棋程序时,你会得到一个二进制文件。例如,假设您有一个项目:

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
因此,在本例中,您只有4个文件,不上载任何.go文件,并且不需要匹配本地的文件夹结构

对于nginx,您只需要将流量转发到一个端口,这样它就不需要知道文件在哪里。Go完全能够为您的公共和媒体目录之外的文件提供服务

如果您需要一个可写文件夹,大多数web应用程序都是只读的,那么我建议将该数据存储在/tmp或/var中,但不要与您的应用程序一起