Acesse o Jenkins através do Tomcat7 e do Apache2

0

Estou configurando um servidor de CI / CD * h, hospedado em uma pequena caixa que eu tenho na parte de trás da minha casa. e2 / mods-e / Atualmente, tenho uma instância do Jenkins sendo executada pelo Tomcat7 na porta 8080 e uma instância do SonarQube sendo executada na porta 9000.

O que eu gostaria de poder fazer é acessar cada um deles por meio do link e link respectivamente, e impedi-los de serem acessados pela porta (ou seja, link )

Atualmente, tenho um jenkins.conf localizado em /etc/apache2/sites-available/ vinculado a /etc/apache2/sites-enabled/jenkins.conf e o módulo jk ativado em /etc/apache2/mods-enabled/jk.conf e /etc/apache2/mods-enabled/jk.load

Este é o conteúdo do meu jenkins.conf (como sugerido em este post)

<VirtualHost *:80>
    ServerAdmin zymus@localhost
    ServerName jenkins.mysite.net
    ServerAlias jenkins
    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPreserveHost on
    ProxyPass /jenkins http://localhost:8080/jenkins nocanon
    AllowEncodedSlashes NoDecode
</VirtualHost>

No entanto, quando navega para o link , recebo um erro 404. Mas, acessá-lo através do link funciona.

Quais os próximos passos que eu poderia dar para conseguir isso?

ATUALIZAÇÃO: pude visitar o site alterando

ProxyPass /jenkins http://localhost:8080/jenkins nocanon

para

ProxyPass / http://localhost:8080/jenkins nocanon

Mas, eu ainda gostaria de não poder visitá-lo via: 8080. Ou isso é algo que eu não deveria estar tentando?

EDIT: Eu consegui configurar tudo. O principal culpado foi que eu estava definindo o VirtualHost em cada um dos arquivos de configuração do site, então o sonar.conf e o jenkins.conf tinham o elemento VirtualHost. Eu removi isso e os dois sites funcionaram.

    
por Zymus 23.01.2015 / 05:52

1 resposta

0

Para que o seu servidor proxy possa enviar sua solicitação e a resposta de volta do servidor jenkins no 8080, ela precisará estar disponível, pelo menos para si mesma, em jenkins_box:8080 .

Restringindo o acesso:

Da internet mais ampla

Se a instância jenkins e o servidor proxy estiverem sendo executados na mesma máquina (como no seu caso), tudo o que você precisa fazer para impedir que alguém saia de sua LAN (alguém acessando my.website.com da Internet) é simplesmente NÃO encaminhar a porta 8080 do seu roteador para o seu servidor. Encaminhe apenas a porta 80.

Você pode ter blocos virtualhost quase idênticos, um para sonarqube, definido para o nome do servidor sonarqube.mywebsite.com e outro para o jenkins, definido como jenkins.mywebsite.com . Encaminhar apenas a porta 80 para essa máquina e o bingo bango, da Internet, a única maneira de obter esses serviços é por esses subdomínios.

Na sua LAN

Como o único dispositivo que você deseja permitir acessar server:8080 é server , dentro das diretivas virtualhost para sonarqube e jenkins, você pode definir as configurações Permitir e Negar.

Por exemplo:

Order deny,allow Allow from 127.0.0.1

Entraria em cada bloco de virtualhost. Você também pode querer especificar o endereço IP do servidor como um IP adicional permitido (fingindo que o IP do seu servidor é 192.168.1.12):

Allow from 127.0.0.1 192.168.1.12

Esta é quase exatamente a configuração que tenho para vários de meus próprios serviços.

    
por hlmtre 24.01.2015 / 00:41