技术解析

nginx重启不生效是咋回事?
0
2021-05-31 06:44:56
idczone
本来服务器运转的好好的,昨天把nginx升级到最新版,今天添加一个网站配置之后,网站没有生效,直接跳转到一个美国服务器默认站点了,没有任何提示,这会是什么原因呢?
先check下配置文件语法,然后确认重启过程确实无错误?

nginx -s reload 有时候不能完全生效,killall之后,再启动新进程

刚看了下,因为我的网站配置里面有一条把 非www301跳转到www. 貌似没有生效,直接用www.访问就可以了,如果不带www,就不行,难道这个那个我域名没有添加*泛解析有关系么?

还是有问题,killall了貌似也不行,同样的目录,其他网站都好好的,配置文件也是cp生成的,但就是有几个网站配置不生效。

是否未创建软连接?比如没有 ln 到 sites-enabled 目录。

之前通过apt安装的nginx,默认是没有sites-available和sites-enabled这两个目录的,我都把配置放在新建的conf.d文件夹里,都是可以用的,昨天update了下,发现nginx自己又新建了sites-和enabled-两个目录,但是我之前的网站都是可以正常访问的,并且貌似我把配置拖到sites-available和sites-enabled貌似一样不起作用。

reload不生效 可能是配置文件语法错误

你升级把配置文件覆盖掉了 恭喜~

配置文件都是用别的网站配置文件直接cp的,紧紧是把里面的域名换了个,我也郁闷了。

如果是这样,为什么其他网站都没问题?

所以你自己都没把问题搞清楚嘛;升级很可能会有配置文件变化,比如,我设想一个可能性:
旧版的总nginx.conf里面是include /etc/nginx/sites-enabled/*;
后来打包者觉得不爽,改成include /etc/nginx/sites-enabled/*.conf;
那你如果后来添加的文件不是conf就不生效了;
----
----
另外我不知道你的nginx是什么版本,最近的nginx change log http://nginx.org/en/CHANGES
Changes with nginx 1.3.10 25 Dec 2012
*) Change: now if the "include" directive with mask is used on Unix
systems, included files are sorted in alphabetical order.
这个特性是最近添加的,影响到配置文件的作用顺序;
----
所以你要搞清楚究竟是什么问题,什么叫没有生效,是nginx没有解释你加入的文件,还是你的文件存在语法问题、指令问题。

我之前都是把配置文件放在 /etc/nginx/conf.d/文件里的,里面已经有很多网站了,并且都可以正常运行。nginx.conf配置里的目录也是 /etc/nginx/conf.d/*.conf 问题就在于其他网站都没问题,就是有两个网站配置不生效,访问的时候会跳转到默认网站。我的nginx版本好像是1.2.7

还有可能是加载了错误的文件、、
亲身经历,配置文件路径不是大环境统一的路径,我去、

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服