Opened 4 years ago
Closed 4 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: | 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

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 dpkgor https://debian-handbook.info/browse/stable/sect.package-meta-information.html#sidebar.questions-conffilesAs 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.