Opened 3 years ago

Closed 3 years ago

#2195 closed defect (invalid)

after upgrade to 1.21.0,it cover my nginx.conf setting / and make a new default.conf

Reported by: cwyin7788@… Owned by:
Priority: major Milestone: nginx-1.21
Component: documentation Version:
Keywords: Cc: cwyin7788@…
uname -a: Linux debian 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux
nginx -V: nginx version: nginx/1.21.0
built by gcc 8.3.0 (Debian 8.3.0-6)
built with OpenSSL 1.1.1d 10 Sep 2019
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.21.0/debian/debuild-base/nginx-1.21.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'

Description

I have 3 servers, set cronjob, auto upgrade nginx mainline version,It’s okay to have updated multiple versions.but when this time, auto upgrade to 1.21.0, it have problem.

Today,I need to use command restart nginx, it show me error,80 already in use,I check, the problem is, in /etc/nginx/conf.d/,it add a new file default.conf (I don't have this file before),this file listen 80, but my 80 is listen by HAPROXY ,so nginx cannot start, after I delete default.conf, I can restart nginx

But, my sites all dead, then I check what happen again, I spent a lot of time, I found that, my custom nginx.conf was gone, new nginx.conf cover it, this new nginx.conf set the virtual server path to (include /etc/nginx/conf.d/*.conf;),but my custom nginx.conf, virtual server path not in /etc/nginx/conf.d, so my sites all dead.

Fortunately, I have backed up nginx.conf, and restored my nginx.conf it back to normal

when I use nginx -v to check,I just knew it was updated to the latest version 1.21.0, this problem only appeared in this update, and I haven’t tried it in the previous version.

3 servers,3 nginx, also have this problem, 3 server's sites were dead until I found the solution

In the next update, please do not add or change any user configuration files, otherwise, updating nginx mainline like this would be terrible

Change History (1)

comment:1 by thresh, 3 years ago

Resolution: invalid
Status: newclosed

Hi!

When doing upgrades on deb-based systems, dpkg will ask whether you want to replace/fix the configuration files if those are modified in the new package.

Specifically, in our case of default.conf, it will ask something like if the file was removed:

Setting up nginx (1.21.0-1~buster) ...

Configuration file '/etc/nginx/conf.d/default.conf'
 ==> Deleted (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** default.conf (Y/I/N/O/D/Z) [default=N] ?

If you choose N, which is a default, it will not create a /etc/nginx/conf.d/default.conf.

Similarly for nginx.conf:

Configuration file '/etc/nginx/nginx.conf'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** nginx.conf (Y/I/N/O/D/Z) [default=N] ?

It's likely that your automatic upgrade scripts chose a different option when answering the questions. I suggest taking a look at "force-confold" options or alike, see man 1 dpkg or https://debian-handbook.info/browse/stable/sect.package-meta-information.html#sidebar.questions-conffiles

As for the changes in the configuration files, it's inevitable and sometimes they need to be changed - the jump from 1.19 to 1.21 (and 1.18 to 1.20 too) is a least worst time to do it.

Note: See TracTickets for help on using tickets.