How to resolve domains within a vagrant box?

385 views Asked by At

I have a Debian Vagrant box running a Nginx server which hosts two websites/services that should share data via JSON endpoints.

Websites are accessible with https://app.test and https://cdn.app.test from the browser of the Host MacOS system.

To do this I have setup config.vm.network "private_network", ip: "33.33.33.10" in the Vagrantfile.

I have added to the /etc/hosts file on MacOS:

33.33.33.10 app.test
33.33.33.10 cdn.app.test

I can access both domains from the Mac, that works.

However I cannot use curl https://cdn.app.test/ within the Vagrant box shell because the Domains won't be resolved. Neither curl_init or file_get_contents work.

I guess the problem is that the Vagrant cannot see the MacOS hosts entries.

What is the right way to configure this dev system? What is the easy fix?

2

There are 2 answers

0
Bruce Tong On

For Vagrant. copy the default config from /etc/apache2/sites-available/000-default.conf to /etc/apache2/sites-available/"".conf

vagrant ssh // login

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/"<your-test-domain>".conf

Folder name in sites-available should be the exact same as the one that you will be changing in your hosts file later.

Then edit your ServerName and DocumentRoot, enable it -> sudo a2ensite "".conf

restart Apache, edit your hosts file in your host OS.

Inside your hosts file, point to your private IP as specified in Vagrantfile

0
solitud On

The easy fix is to add

127.0.0.1       app.test
127.0.0.1       cdn.app.test

to /etc/hosts in the Debian Vagrant box.