NGINX更改配置文件位置

11

我正在配置服务器上的NGINX,并已经成功将所有文件放入/usr/local/nginx/html/中。我还在/usr/local/nginx/conf中创建了一个nginx.conf文件,它只包含:

server {
    root /usr/local/nginx/html;
    index index.html index.html;
}

我一直使用/usr/local/,因为那是我拥有写入权限的唯一目录。当我访问网站时,仍然会看到Nginx的index.html页面,并显示以下消息:

这是在EPEL上与nginx一起分发的默认index.html页面。它位于/usr/share/nginx/html中。

您现在应该将您的内容放置在所选位置,并在nginx配置文件/etc/nginx/nginx.conf中编辑根配置指令。

我想知道如何正确配置我的nginx.conf文件,以便它使用该配置文件并从正确的位置获取站点文件?


1
检查 /etc/sysconfig/nginx 文件,在某些环境中该文件在 init 脚本中被检查,这是修改在此 init 脚本中使用的 NGINX_CONF_FILE 路径的好地方。 - regilero
我没有编辑那个文件的权限,只有上面指定的那些文件的权限。试图在不需要添加新权限的情况下完成这项任务。谢谢! - heatherthedev
这个问题没有表明他是否在使用init,但或许这是一个合理的假设。@heatherthedev ,您是如何启动nginx的? - Ryne Everett
2个回答

29
无论您是在shell中启动nginx还是使用守护进程服务(这只是命令行api的包装器),答案都在命令行API中。

正如您了解到的,nginx查找配置文件的默认位置为/etc/nginx/nginx.conf,但您可以使用-c标记传递任意路径。例如:
$ nginx -c /usr/local/nginx/conf

另外还有几点需要注意:

  • 我怀疑在服务器块中重复使用 "index.html" 没有任何好处。
  • 我会将您的配置文件命名为 "nginx.conf"(您目前指示它只是命名为 "conf")。这是标准命名。
  • 熟悉另一个命令行标志-t,它只是检查您的配置文件是否有效。每次修改配置文件后都要运行 nginx -t 来检查是否有语法错误。要重新加载更改后的配置,请使用 nginx -s reload

太棒了-目前还缺少测试所需的权限,但我会尽快尝试。 - heatherthedev
1
工作得很好!现在开始解决其他所有问题 ;) - heatherthedev

3
这是如何编译nginx以查找另一个目录中的默认配置文件:
./configure --conf-path=/etc/some/other/nginx.conf
make
make install
nginx

来自文档:

--conf-path=path — 设置nginx.conf配置文件的名称。如果需要,可以始终使用命令行参数-c file指定不同的配置文件启动nginx。默认情况下,该文件名为prefix/conf/nginx.conf。

(说明:该段内容是关于nginx配置文件的说明)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接