繁体   English   中英

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

[英]Go / Node.js / PHP + NGINX / Apache web root directory conventions / best practices

我刚刚在NGINX作为主要Web服务器的专用Linux(Ubuntu Server 14.04)服务器上完成了CMS(用Go编程)的设置,除了Go(和Node.js)http Web服务器以及而不是使用各自的文件服务器。

由于这是我的第一次使用Linux的经历,通常是专用服务器,以及在线部署Go应用程序,因此,我很想听听您对我们存储在哪里的理想约定的看法,最好是在所有不同的网站/ Web应用程序中。

默认情况下,NGINX使用/ usr / share / nginx /提供内容。 我知道将其更改为我们想要的任何东西是世界上最容易的事情,但是我喜欢从一开始就做事情。

现在,我将CMS(Go应用程序)存储在/ home / [myuser] / gocode / src / [projectname]中。 这是go应用程序所在的位置,但也有我拥有NGINX理想的文件夹“ public”和“ media”。

由于我希望能够切换Web服务器并将Apache-,NGINX-等应用程序托管在同一总根目录中,因此我对使用/ 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 当您构建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

因此,在此示例中,您只有4个文件,没有上载任何.go文件,也无需匹配本地的文件夹结构。

对于nginx,您只需要将流量转发到端口即可,因此它不需要了解文件的位置。 Go不仅能够将文件提供到公共目录和媒体目录之外,还具有更多功能。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM