Recently, I set up a new developing environment in a VirtualBox VM. The source code shares between the host and VM by shared folder. It causes a problem that the config file can not be found when Nginx is starting up.
I searched on Google and found some related posts.
“If Nginx does not start after rebooting the server” points out the correct direction of the solution, however, the changes of method 1 mentioned in the article is not working for VirtualBox, and personally, I don’t like the method 2.
While, “How to mount shared folder from VirtualBox at boot time in Debian” describes the mount must happen after vboxadd-service.service started.
Combine this two posts, the solution would be obvious.
Solution
Change the line /etc/systemd/system/multi-user.target.wants/nginx.service
in the configuration file of Nginx in VM
After=network.target
Adding vboxadd-service.service
After=network.target vboxadd-service.service
Reboot the VM.
Check Nginx running status with the following command
sudo service nginx status
Solved!