Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Nginx shows wrong time/timezone

How to fix Nginx timezone? I've configured nginx to serve a directory but datetime of creation is one hour after my real time.

I've added to /etc/init.d/nginx

export TZ='Europe/Bratislava'

then

sudo service nginx reload
sudo service nginx restart

But it didn't help, there should be 14:19 instead of 13:19.

EDIT

Tried to change Ubuntu default timezone but the datetimes aren't changed.

sudo dpkg-reconfigure tzdata

enter image description here

like image 597
Milano Avatar asked Dec 07 '18 13:12

Milano


3 Answers

Firstly, you need to set your system timezone. You can use timedatectl list-timezones to get the names.

sudo timedatectl set-timezone Europe/Moscow

Secondly, set autoindex_localtime directive autoindex_localtime on; in nginx config file for your site, for example /etc/nginx/sites-avaliable/default. Put the directive before autoindex on;

server {
        listen 80;
        listen [::]:80;

        root /var/www/dir;

        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                try_files $uri $uri/ =404;
        }

        autoindex_localtime on;
        autoindex on;
}
like image 184
gman Avatar answered Nov 13 '22 17:11

gman


By default, nginx outputs the directory index in UTC time. If you want it to display the time in your local timezone, you should set the autoindex_localtime directive to on.

autoindex_localtime on
like image 40
gpgekko Avatar answered Nov 13 '22 15:11

gpgekko


To change the timezone you can run the following command in your instance:

sudo dpkg-reconfigure tzdata

and then choose your preferred timezone.

like image 2
SherylHohman Avatar answered Nov 13 '22 17:11

SherylHohman