Skip to content

Instantly share code, notes, and snippets.

@igoralves1
Last active August 3, 2017 15:30
Show Gist options
  • Save igoralves1/3321a796ba619614cb4e251f4a2fee76 to your computer and use it in GitHub Desktop.
Save igoralves1/3321a796ba619614cb4e251f4a2fee76 to your computer and use it in GitHub Desktop.
Fazer NginX ler um arquivo que se econtra numa pasta fora da maquina virtual
Temos uma pasta test.com dentro do windows, em uma pasta aa_share
Temos uma maquina virtual ubuntu com NginX com servidor.
O NginX aponta para ~/vhosts.
Dentro de vhosts temos um link simbolico que aponta para ~/media/aa_share/test.com.
Quando tentamos abrir o site test.com recebemos um erro de permission deneid.
Parece que n'ao [e permitido ao nginx accessar o arquivo test.com dentro do arquivo
compratilhado aa_share que se encontra fisicamente dentro do windows.
a solucao que encontrei foi:
1-fazer media/ pertencer a ila:www-data
2-dentro de media temos
root vboxsf sf_aa_share
dentro de aa_share todos os folders sao root:vboxsf
colocar o usuario www-data dentro do grupo vboxsf
$sudo usermod -aG vboxsf www-data
com isso gnix pode ler o que esta dentro de /media/sf_aa_share/test.com
$ sudo apt-get install net-tools
$ ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
inet6 fe80::42:cbff:fec5:1cee prefixlen 64 scopeid 0x20<link>
ether 02:42:cb:c5:1c:ee txqueuelen 0 (Ethernet)
RX packets 12 bytes 456 (456.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 297 bytes 25070 (25.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::47b:92d:dad9:dd0 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:1f:0d:7d txqueuelen 1000 (Ethernet)
RX packets 106174 bytes 108401954 (108.4 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 38544 bytes 5342653 (5.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 536 bytes 42320 (42.3 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 536 bytes 42320 (42.3 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
veth9646dee: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::3cc0:8dff:fe9c:e572 prefixlen 64 scopeid 0x20<link>
ether 3e:c0:8d:9c:e5:72 txqueuelen 0 (Ethernet)
RX packets 12 bytes 624 (624.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 72 bytes 8420 (8.4 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Fazendo o browser do host (windows) apontar para dentro da maquina virtual ubuntu e especificamente para o site test.com
1- Passar a maquina virtual de nat para bridge - reiniciar a maquina
2- Entrar no ubuntu, dentro da maquina virtual e escrever ifconfig no terminal para saber qual o ip da maquina virtual. No meu exemplo o meu ip era 10.20.1.205
3 - Abrir o browser de dentro do host (windows) e escrever 10.20.1.205. Veremos aparecer welcome nginx!. Isso quer dizer que o servidor nginx esta sendo acessado de dentro do windows.
4-Atribuir o virtual host. Queremos que o site www.test.com no browser do host windows possa acessar test.com dentro do nginx no ubuntu, que por sua vez acessa o conteudo da pasta aa_share no windows
5-Modificar o arquivo C:\Windows\System32\drivers\etc\hosts para 10.20.1.205 test.com.
6-Assim, quando escrevemos test.com no browser do windows, essa chamada ira emcaminha a url para dentro da maquina virtual do ubuntu e o virtualhost test.com sera acessado dentro do nginx.
Com isso poderemos testar um projeto em linux usando os arquivos de dentro do windows, sem fazer uso de docker ou vagrant.
!!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment