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.
