nginx缺少网站 - 可用目录

Fr0*_*ght 164 centos virtualhost nginx

我在Centos 6上安装了Nginx,我正在尝试设置虚拟主机.我遇到的问题是我似乎无法找到该/etc/nginx/sites-available目录.

为了创造它,我需要做些什么吗?我知道Nginx正在运行,因为我可以浏览它.

Moh*_*ady 311

好吧,我认为nginx本身在它的设置中没有那个,因为Ubuntu维护的包作为模仿Debian的apache设置的惯例.如果您想模拟相同的设置,可以自己创建.

创建/etc/nginx/sites-available/etc/nginx/sites-enabled然后编辑http里面块/etc/nginx/nginx.conf,并添加此行

include /etc/nginx/sites-enabled/*;
Run Code Online (Sandbox Code Playgroud)

当然,所有文件都在里面sites-available,你可以在里面sites-enabled为你想要的人创建一个符号链接.

  • 上帝,我不能说我做了多少次搜索来解决这个问题.我使用的是Amazon Linux AMI 2014.03版.如果你从rpm文件(无论是nginx 1.6.2还是nginx 1.7.5)安装nginx,这些目录都不会自动创建,但很多nginx配置示例都会引用这些目录...让你想知道你的nginx是否正确安装. (32认同)
  • RedHat的亲戚(即Fedora和Centos)没有像Debian/Ubuntu这样开箱即用的功能.正如@Mohammad所说,这很容易复制,但是对于新手来说,没有好的默认值会让人感到困惑. (21认同)
  • 我修复了它,开始新鲜并创建了这样的sym链接:```sudo ln -s /etc/nginx/sites-available/test.conf/etc/nginx/sites-enabled/test.conf```不知道为什么完整的路径有所不同:/ (6认同)

elb*_*and 61

如果你更喜欢一种更直接的方法,一种不会混淆/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,从此处输出.confconf.d目录中的所有文件都将变为活动状态.

注意:如果您愿意,可以同时使用conf.dsites-enabled+ sites-available方法.我喜欢在我的开发盒上测试conf.d.感觉比symlinking和unsymlinking更快.

  • 符号化"混乱"的要点是,您可以保留配置文件,并且仍然可以非常轻松地禁用虚拟主机.如果你使用你的方法,当你想要禁用一个我认为没有比方便地删除符号链接更乱的网站时,你必须将文件从conf.d中移出. (12认同)
  • @bvktor只包含扩展名为.conf的站点.如果您不想启用站点,只需将.disabled扩展名添加到站点configuratoin文件即可.这是CentOS/Apache的标准惯例,它也适用于Nginx. (10认同)
  • 是的,我同意,在快速测试内容时输入 ln -s `../sites-available/...` 相当乏味,但从长远来看,它很方便且更易于管理:) (3认同)
  • 有点惊讶的是,没有人建议“include /etc/ngins/conf.d/*.enabled”或类似的内容,禁用虚拟主机只需要将 _.enabled_ 从名称中重命名即可 (3认同)