Actually, it is very surprising behaviour!
This way, after change external_url
setting, I should also change not only external port mapping side in docker command, but also the internal side. So, 6080:80
become 6080:6080
if I set external_url 'http://192.168.1.1:6080'
.
It is very surprising and unexpected behavior. Inside docker container nginx should not change it’s listen port at all. Thank you @eparimbelli for the hint!