V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
nonozone
V2EX  ›  NGINX

nginx重启不生效是咋回事?

  •  
  •   nonozone ·
    nonozone · 2013-02-21 15:28:25 +08:00 · 14021 次点击
    这是一个创建于 4304 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本来服务器运转的好好的,昨天把nginx升级到最新版,今天添加一个网站配置之后,网站没有生效,直接跳转到一个默认站点了,没有任何提示,这会是什么原因呢?
    13 条回复    2017-06-12 05:59:23 +08:00
    tarsier
        1
    tarsier  
       2013-02-21 15:30:43 +08:00 via Android
    先check下配置文件语法,然后确认重启过程确实无错误?
    BigZ
        2
    BigZ  
       2013-02-21 15:31:05 +08:00   ❤️ 1
    nginx -s reload 有时候不能完全生效,killall之后,再启动新进程
    nonozone
        3
    nonozone  
    OP
       2013-02-21 15:37:35 +08:00
    刚看了下,因为我的网站配置里面有一条把 非www301跳转到www. 貌似没有生效,直接用www.访问就可以了,如果不带www,就不行,难道这个那个我域名没有添加*泛解析有关系么?
    nonozone
        4
    nonozone  
    OP
       2013-02-21 17:05:42 +08:00
    还是有问题,killall了貌似也不行,同样的目录,其他网站都好好的,配置文件也是cp生成的,但就是有几个网站配置不生效。
    lamengao
        5
    lamengao  
       2013-02-21 18:33:27 +08:00
    是否未创建软连接?比如没有 ln 到 sites-enabled 目录。
    nonozone
        6
    nonozone  
    OP
       2013-02-22 09:02:19 +08:00
    @lamengao 之前通过apt安装的nginx,默认是没有sites-available和sites-enabled这两个目录的,我都把配置放在新建的conf.d文件夹里,都是可以用的,昨天update了下,发现nginx自己又新建了sites-和enabled-两个目录,但是我之前的网站都是可以正常访问的,并且貌似我把配置拖到sites-available和sites-enabled貌似一样不起作用。
    daweiba
        7
    daweiba  
       2013-02-22 17:30:36 +08:00
    reload不生效 可能是配置文件语法错误
    BOYPT
        8
    BOYPT  
       2013-02-22 17:32:14 +08:00
    你升级把配置文件覆盖掉了 恭喜~
    nonozone
        9
    nonozone  
    OP
       2013-02-22 17:32:31 +08:00
    @daweiba 配置文件都是用别的网站配置文件直接cp的,紧紧是把里面的域名换了个,我也郁闷了。
    nonozone
        10
    nonozone  
    OP
       2013-02-22 17:35:43 +08:00
    @BOYPT 如果是这样,为什么其他网站都没问题?
    BOYPT
        11
    BOYPT  
       2013-02-22 17:52:43 +08:00
    @nonozone 所以你自己都没把问题搞清楚嘛;升级很可能会有配置文件变化,比如,我设想一个可能性:

    旧版的总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没有解释你加入的文件,还是你的文件存在语法问题、指令问题。
    nonozone
        12
    nonozone  
    OP
       2013-02-23 09:08:20 +08:00
    @BOYPT 我之前都是把配置文件放在 /etc/nginx/conf.d/文件里的,里面已经有很多网站了,并且都可以正常运行。nginx.conf配置里的目录也是 /etc/nginx/conf.d/*.conf 问题就在于其他网站都没问题,就是有两个网站配置不生效,访问的时候会跳转到默认网站。我的nginx版本好像是1.2.7
    mageemeng
        13
    mageemeng  
       2017-06-12 05:59:23 +08:00
    还有可能是加载了错误的文件、、
    亲身经历,配置文件路径不是大环境统一的路径,我去、
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6035 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 02:09 · PVG 10:09 · LAX 18:09 · JFK 21:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.