Como posso apontar um domínio para várias portas com base no diretório em que estou navegando?

3

Eu tenho um servidor rodando em casa. Este servidor está sendo executado em um IP público que é definido no meu domínio como um registro A.

Tudo está funcionando atualmente.

Eu uso o Apache para um pequeno site junto com o Confluence.

Apache: 80  
Confluence: 8090  

O que eu quero saber é como configurá-lo, se eu procurar:

domain.net/confluence

O Apache saberá que isso deve redirecionar isso para a porta 8090 ? Isso é simplesmente tratado através da configuração de um host virtual para o mesmo IP, mas apontando para esse diretório e fazendo com que ele ouça em 8090 ?

    
por Marty Lavender 30.06.2016 / 22:19

1 resposta

2

Então eu descobri que posso fazer isso com o nginx, que eu tinha planejado em configurar de qualquer maneira.

Foi o que eu fiz!

Adicionado isso em nginx/sites-available

    server {
    listen www.thelavender.net:80;
    server_name www.thelavender.net;
    location /confluence {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:8090/confluence;
    }
}

copiou isso para nginx/sites-enabled

no meu conf/server.xml para o Confluence, adicionei o seguinte:

proxyName="www.xxxxxxx.net" proxyPort="80" />

ao final do seguinte bloco de código:

<Connector port="8090" connectionTimeout="20000" redirectPort="8443"
            maxThreads="48" minSpareThreads="10"
            enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8"
            protocol="org.apache.coyote.http11.Http11NioProtocol"

Reiniciaram o Confluence e o Nginx e o BOOM !!! O Nginx está encaminhando a porta 8090 para 80 e eu não preciso mais usar a URL feia com a porta !!

DOCE!

UPDATE

Eu queria voltar e atualizar isso, pois encontrei uma maneira melhor de configurar meus blocos de servidores para vários aplicativos em execução no mesmo domínio. No meu caso, eu queria executar o Confluence e o JIRA por trás do mesmo domínio.

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

root /usr/share/nginx/html;
index index.html index.htm;

server_name www.example.com;

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

location /jira/ {
   proxy_set_header X-Forwarded-Host $host;
   proxy_set_header X-Forwarded-Server $host;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_pass http://192.168.1.2:8080;
   }

location /confluence/ {
   proxy_set_header X-Forwarded-Host $host;
   proxy_set_header X-Forwarded-Server $host;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_pass http://localhost:8090;
   client_max_body_size 10M;
}
}

Ou ainda mais simples

server {
listen 80;

server_name www.example.com;

location /confluence {
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://localhost:8090/confluence;
}

location /jira {
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://localhost:8080/jira;
    client_max_body_size 10M;
}
}

Turdah !!!!

    
por Marty Lavender 30.06.2016 / 23:53