重新加载 Nginx 配置

Posted

技术标签:

【中文标题】重新加载 Nginx 配置【英文标题】:Reload Nginx configuration 【发布时间】:2014-02-13 01:52:06 【问题描述】:

我正在尝试修改 nginx 配置文件以删除“重写”。

目前,我有这个配置文件:

worker_processes  1;

events 
    worker_connections  1024;


http 
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server 
        listen      80;
        server_name amc.local;
        return 301 https://$host:8443/index.html;
    

现在我想重新加载这个配置文件,我试过了

nginx -s reload
nginx -c <conf file>
nginx -s stop/start

在日志文件中,有一行

2014/01/22 11:25:25 [notice] 1310#0: signal process started

但未加载修改。

【问题讨论】:

【参考方案1】:

也许您没有以 root 身份执行此操作?

试试sudo nginx -s reload,如果还是不行,你可以试试sudo pkill -HUP nginx

【讨论】:

即使在 Bitnami LAMP Stack 上,这种方法也有效!谢谢 @GangsarSwaPurba,很高兴它有效!它几乎可以在任何 UNIX 系统上运行,因为它不依赖于任何专有框架或系统特定脚本!【参考方案2】:

如果你的系统有systemctl

sudo systemctl reload nginx

如果你的系统支持service(使用debian/ubuntu)试试这个

sudo service nginx reload

如果没有(使用 centos/fedora/etc)你可以试试 init 脚本

sudo /etc/init.d/nginx reload

【讨论】:

没有服务的等价物是/etc/init.d/nginx reload。据我所知,可以在 centos 和 debian 上工作。 debian 发行版更喜欢service 关键字,如果您使用init.d 脚本,某些软件包甚至会发出警告,所以我通常使用service,如果不使用则回退到init.d不行,不管怎样,我都会将此提示添加到我的答案中 这很有趣。我从未见过警告。我一直认为服务在 /etc/init.d/ 中运行脚本。我更喜欢服务,因为它更容易打字。引发警告的技术原因是什么? 谢谢。这很有意义。我还发现了这个http://www.tutorialspoint.com/unix_commands/service.htm 我认为它只是手册页,但它确实解释了服务如何创建一个最小的环境来运行脚本。我想它可以帮助它们在不同的发行版之间一致地运行。 当你有 Nginx 服务时它会起作用。问题是关于 Nginx 执行文件而不是服务...

以上是关于重新加载 Nginx 配置的主要内容,如果未能解决你的问题,请参考以下文章

linux 上修改了nginx.conf 怎么重新加载配置文件生效

keepalived怎么重新加载配置文件

Nginx常用命令(启动/重启/停止/测试配置文件/重新加载配置文件)

Nginx常用命令(启动/重启/停止/测试配置文件/重新加载配置文件)

nginx 启动,停止和重新加载配置

nginx重新加载配置(不停服)