So it looks like there is a reverse proxy in the way, and your reverse
proxy is abusing the X-Forwarded-Host header... which should have just the
host name not the port... and X-Forwarded-Port should be the port... at
least that's what the Jenkins code expects (it is perhaps a bug in the
Jenkins code... but that is up for debate when dealing with X- headers)


On 28 July 2014 22:22, Hansen Loke <[email protected]> wrote:

> I've reverted the move for now as there were some backlogs of builds to
> clear up. I've tried the commands in the reverted state and it gives:
>
> http://my.machine.com:8080/jenkins/
> http://my.machine.com:8080/jenkins/
> my.machine.com:8080
> null
>
> I'll try the move again tomorrow with the commands. It is possible that
> reverse proxy is in place. The server has access to two vlans which may
> confuse things abit, but I was thinking that I'm just changing the location
> of where the Jenkins home is and running from different user that all other
> settings should just be the same.
>
>
> On Monday, 28 July 2014 18:14:07 UTC+1, Daniel Beck wrote:
>
>> Run the following in Script Console and report the output:
>>
>>         println Jenkins.instance.rootUrlFromRequest
>>         println JenkinsLocationConfiguration.get().url
>>         println 
>> org.kohsuke.stapler.Stapler.currentRequest.getHeader('X-Forwarded-Host')
>>
>>         println 
>> org.kohsuke.stapler.Stapler.currentRequest.getHeader('X-Forwarded-Port')
>>
>>
>> Are you accessing Jenkins through a reverse proxy?
>>
>> On 28.07.2014, at 18:12, Hansen Loke <[email protected]> wrote:
>>
>> > The config is the same as before the move, so it's:
>> http://my.machine.com:8080/jenkins/
>> >
>> >
>> >
>> > On Monday, 28 July 2014 17:08:23 UTC+1, Daniel Beck wrote:
>> > What's configured in Manage Jenkins » Configure System » Jenkins
>> Location » Jenkins URL?
>> >
>> > On 28.07.2014, at 12:08, Hansen Loke <[email protected]> wrote:
>> >
>> > > Hi,
>> > >
>> > > Recently I've moved the Jenkins installation to a different HDD
>> location on the same host, and to be started by a different user, reasons
>> for the move was that it was previously freeloading from another user.
>> After this move all *nix slave nodes connects fine but the windows jnlp
>> slave node doesn't come up anymore with the following errors in the slave
>> node logs:
>> > >
>> > > jenkins-slave.err.log:
>> > >
>> > > JNLP file http://my.machine.com:8080/jenkins/computer/node01/slave-
>> agent.jnlp?encrypt=true has invalid arguments: [<some_hex>, node01,
>> -url, http://my.machine.com:8080/jenkins/, -url,
>> http://my.machine.com:8080:8080/jenkins/, -headless, -jar-cache,
>> C:\.jenkins\cache\jars]
>> > > Most likely a configuration error in the master
>> > > "http://my.machine.com:8080:8080/jenkins/"; is not a valid value for
>> "-url"
>> > >
>> > >
>> > > I had a look in the downloaded slave-agent.jnlp file from the website
>> and it has:
>> > >
>> > > <jnlp spec="1.0+" codebase="http://my.machine.
>> com:8080/jenkins/computer/node01/"><information><title>Slave Agent for
>> node01</title><vendor>Jenkins project</vendor><homepage href="
>> https://jenkins-ci.org/"/></information><security><
>> all-permissions/></security><resources><j2se version="1.5+"/><jar href="
>> http://my.machine.com:8080/jenkins/jnlpJars/remoting.jar"/><property
>> name="hudson.showWindowsServiceInstallLink" 
>> value="true"/></resources><application-desc
>> main-class="hudson.remoting.jnlp.Main"><argument>some_hex<
>> /argument><argument>node01</argument><argument>-url</argument><argument>
>> http://my.machine.com:8080/jenkins/</argument><argument>-url</
>> argument><argument>http://my.machine.com:8080:8080/jenkins/
>> </argument></application-desc></jnlp>
>> > >
>> > > The part where it is marked in bold font is the part where it is
>> complaining about, whereas before the move it didn't have this extra url.
>> > >
>> > > I then had a look at the Jenkins source code to see where did this
>> url come from:
>> > >
>> > > The file in jenkins-master/core/src/main/resources/hudson/slaves/
>> SlaveComputer/slave-agent.jnlp.jelly has this:
>> > >
>> > >         <j:if test="${rootURL!=app.rootUrlFromRequest}">
>> > >           <!--
>> > >             rootURL is based on the URL in the system config, but
>> there has been
>> > >             numerous reports about people moving Jenkins to another
>> place but
>> > >             forgetting to update it. To improve the user experience
>> in this regard,
>> > >             let's also pass the URL that the browser sent us as well,
>> so that the
>> > >             JNLP Main class can try both.
>> > >
>> > >             Note that rootURL is still necessary in various
>> situations, such
>> > >             as reverse HTTP proxy situation, which makes
>> rootUrlFromRequest incorrect.
>> > >           -->
>> > >           <argument>-url</argument>
>> > >           <argument>${app.rootUrlFromRequest}</argument>
>> > >
>> > > Thus, this means that somehow after the move the rootUrlFromRequest
>> is now different. Except now I'm lost where to find and correct the "root
>> URL from request" or where that is being set.
>> > >
>> > > After the move I've already grep and replaced paths in the Jenkins
>> setting that pointed to the old location.
>> > >
>> > > Any pointers to where I should look next?
>> > >
>> > > Cheers,
>> > > Hansen
>> > >
>> > >
>> > >
>> > > --
>> > > You received this message because you are subscribed to the Google
>> Groups "Jenkins Users" group.
>> > > To unsubscribe from this group and stop receiving emails from it,
>> send an email to [email protected].
>> > > For more options, visit https://groups.google.com/d/optout.
>> >
>>
>>  --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to