在哪里放置带有nginx的项目文件

weixin_38087180 2019-09-12 02:08:41
查看/usr/share/doc/nginx/README.Debian文件,我们可以看到此警告: README for Debian ----------------- Files under /var/www/ are not supported as per Debian Policy. Please see: http://lintian.debian.org/tags/dir-or-file-in-var-www.html and, http://www.pathname.com/fhs/pub/fhs-2.3.html#THEVARHIERARCHY for more details and explanations. 经过一些不成功的研究(我可能会看错了地方……),我想知道: >此警告是一般性建议(“不要将您的文件放在/ var / www中”)或者只是意味着标准的Debian软件包安装不应该在/ var / www下安装文件.>如果我们实际上不鼓励将生产网站放在/ var / www中,我应该把它放在哪里? 谢谢提前!
...全文
210 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38096967 2019-09-12
  • 打赏
  • 举报
回复
再读一遍,恕我直言,将你的docroot放在/ usr下是没有意义的.这是你的数据,而不是nginx.所以,/ var中的某个地方显然是正确的.考虑备份.您的数据位于/ var中,网站也是其中的一部分. / usr不是,/ usr包含包数据(软件系统数据). 现在,我试图“为什么这个Debian政策” 默认情况下在Web服务器上公开通用路径存在风险.通过将默认设置置于/usr/share / nginx / something,Debian可确保Web服务器不会开始提供它不应该提供的文件. 例 你已经在/ var / www中有了一个带有docroot的apache,你安装了nginx而不是apache job(为了速度而提供一些静态文件).因此,您使用没有PHP或htaccess支持的“裸”nginx:您不希望看到nginx开始提供由apache处理的文件:PHP源文件和应受htaccesses保护的文件. 所以对我的理解,Debian政策不是“在/ var / www(或者更确切地说是/ var / www /)中使用docroot是不好的做法,但更多”对于httpd包开始提供服务/ var / www是不好的做法默认情况下”. 此消息/行为只是一个(安全)打包策略.不是系统管理员的好习惯
Nginx是用于HTTP,HTTPS,SMTP,POP3和IMAP协议的开源反向代理服务器,以及负载平衡器,HTTP缓存和Web服务器(原始服务器)。Nginx项目一开始就非常关注高并发,高性能和低内存使用。它获得了两节式BSD许可,并在Linux,BSD变体,Mac OS X,Solaris,AIX,HP-UX以及其他* nix版本上运行。它还具有用于Microsoft Windows的概念证明端口。 托管一些简单的静态内容 $ docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx 或者,Dockerfile可以使用简单的方法来生成包含必要内容的新图像(这比上面的绑定安装要干净得多): FROM nginx COPY static-html-directory /usr/share/nginx/html 将此文件放置在与目录相同的目录中(“ static-html-directory”),运行docker build -t some-content-nginx .,然后启动容器: $ docker run --name some-nginx -d some-content-nginx 暴露外部端口 $ docker run --name some-nginx -d -p 8080:80 some-content-nginx 然后,您可以在浏览器中点击http://localhost:8080或http://host-ip:8080。 复杂的配置 $ docker run --name my-custom-nginx-container -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx 有关nginx配置文件的语法的信息,请参阅官方文档(特别是《入门指南》)。 如果您希望采用默认配置,请使用以下类似内容从运行的nginx容器中复制它: $ docker run --name tmp-nginx-container -d nginx $ docker cp tmp-nginx-container:/etc/nginx/nginx.conf /host/path/nginx.conf $ docker rm -f tmp-nginx-container 也可以使用简单的Dockerfile(在中/host/path/)更干净地完成此操作: FROM nginx COPY nginx.conf /etc/nginx/nginx.conf 如果您CMD在Dockerfile中添加了自定义,请确保将包含-g daemon off;在其中CMD,以使nginx保持在前台,以便Docker可以正确跟踪进程(否则您的容器将在启动后立即停止)! 然后使用构建图像docker build -t custom-nginx .并按如下所示运行它: $ docker run --name my-custom-nginx-container -d custom-nginxNginx配置中使用环境变量 现成的nginx不支持大多数配置块中的环境变量。但是,envsubst如果您需要在nginx启动之前动态生成nginx配置,则可以将其用作解决方法。 这是使用docker-compose.yml的示例: web: image: nginx volumes: - ./mysite.template:/etc/nginx/conf.d/mysite.template ports: - "8080:80" environment: - NGINX_HOST=foobar.com - NGINX_PORT=80 command: /bin/bash -c "envsubst /etc/nginx/conf.d/default.conf && exec nginx -g 'daemon off;'" mysite.template然后,该文件可能包含如下变量引用: listen ${NGINX_PORT}; 在只读模式下运行Nginx 要以只读模式运行nginx,您需要将Docker卷安装到nginx写入信息的每个位置。默认的nginx配置需要对/var/cache和的写权限/var/run。可以通过如下运行nginx轻松地完成此操作: $ d

430

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧