nginx缺少站点-可用目录


188

我在Centos 6上安装了Nginx,并且试图设置虚拟主机。我遇到的问题是我似乎找不到/etc/nginx/sites-available目录。

我需要做些什么来创建它吗?我知道Nginx已启动并正在运行,因为我可以浏览到它。


如果要将一个较大的配置文件拆分为较小的文件,可以使用我的脚本将其拆分:stackoverflow.com/a/38635284/1069083
rubo77 '16

Answers:


354

好吧,我认为nginx本身没有设置,因为Ubuntu维护的软件包将其作为模仿Debian的Apache设置的约定。如果要模拟相同的设置,则可以自己创建。

创建/etc/nginx/sites-available/etc/nginx/sites-enabled然后编辑http块内/etc/nginx/nginx.conf,加入这一行

include /etc/nginx/sites-enabled/*;

当然,所有文件都在内部sites-available,您可以在其中sites-enabled为要启用的文件创建一个符号链接。


23
RedHat亲戚(例如Fedora和Centos)没有像Debian / Ubuntu这样的功能。正如@Mohammad所说的那样,它很容易复制,但是没有很好的默认值会使新手感到困惑。
MGP 2013年

36
天哪,我不能说我做了多少次搜索才能弄清楚这一点。我正在使用Amazon Linux AMI版本2014.03。如果从rpm文件(无论是nginx 1.6.2还是nginx 1.7.5)安装nginx,这些目录不会自动创建,但是许多nginx配置示例都引用了这些目录……这使您想知道nginx是否已正确安装。
so_mv 2014年

1
很好,谢谢,符号链接怎么样?我的语法正确吗?似乎没有被include语句找到。
零和一

7
我修复了它,重新开始并创建了这样的符号链接:sudo ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled/test.conf不知道为什么完整路径会有所不同:/
零和一

1
非常感谢。从源代码构建了nginx,但没有意识到ubuntu做到了这一点。
肖恩·诺伍德

66

如果您希望使用一种更直接的方法,那就不要与/etc/nginx/sites-available和之间的符号链接搞混了/etc/nginx/sites-enabled,请执行以下操作:

  1. 找到您的nginx.conf文件。可能在/etc/nginx/nginx.conf
  2. 找到http块。
  3. 在http块中的某处写入,include /etc/nginx/conf.d/*.conf;这告诉nginx提取conf.d目录中以结尾的任何文件.conf。(我知道:目录中可以有个目录很奇怪.。)
  4. conf.d如果目录不存在,请创建该目录(按照步骤3中的路径)。确保为其赋予正确的权限/所有权。可能是root或www-data。
  5. 将单独的配置文件移动或复制/etc/nginx/sites-available到目录中(就像您拥有的一样)conf.d
  6. 重新加载或重启nginx。
  7. 吃蛋卷冰淇淋。

只要您随后重新加载/重新启动nginx,从此处.conf开始放入conf.d目录中的所有文件都将变为活动状态。

注意:如果需要,可以同时使用conf.dand sites-enabled+ sites-available方法。我喜欢使用在我的开发箱上进行测试conf.d。感觉比符号链接和取消符号链接快。


13
符号链接“ mess”的要点是,您可以保留配置文件,并且仍然非常轻松地禁用虚拟主机。如果使用您的方法,则要禁用站点时,必须将文件移出conf.d,我认为这并不比删除符号链接方便得多。
bviktor 2014年

@bviktor我听到了。我实际上同时使用两种方式。我只是发现[在测试配置时]在可用站点和启用站点的目录之间来回跳动比较繁琐。在生产环境中,我计划使用符号链接。
elbowlobstercowstand

1
是的,我同意,../sites-available/...在快速测试内容时键入ln -s 相当繁琐,但从长远来看,它很方便且易于管理:)
bviktor 2014年

@bviktor非常感谢能够在编写路径名时点击终端中的选项卡并观看自动完成功能。直到我和一个使用它的人一起观看了一段视频之后,我才知道这一点。我以为他们以300 wpm的速度打字!然后我抓住了。:)
elbowlobstercowstand,2014年

12
@bvktor仅包含扩展名为.conf的网站。如果您不希望启用站点,只需将.disabled扩展名添加到站点配置文件中。这是CentOS / Apache中的标准约定,它也将适用于Nginx。
SenG

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.