Welcome! Log In Create A New Profile

Advanced

Re: nginx + fossil configuration problem

Monthadar Al Jaberi
November 21, 2012 01:18PM
Thank you for your explanations!

The "locahost" error is from my side, I was testing different things
and didn't notice. Sorry.

Okej now I understand, I guess I want one server block, no sense in
having fossil.localhost.

So I want localhost/fossil/aaa.

I moved the working location block inside the default server block:

server {
listen 80;
server_name localhost;
location /fossil/ {
proxy_pass http://localhost:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
root /usr/share/nginx/html;
include fastcgi.conf;
}
}

Now all my other cases work except the fossil one.

When I browse to localhost/fossil/aaa I see that the link changes to:

http://localhost//aaa/index

An extra '/' is added somehow. The page I get is from nginx 404, which
I suppose means nginx did not proxy the request??

best regards,

On Wed, Nov 21, 2012 at 12:24 AM, Francis Daly <francis@daoine.org> wrote:
> On Tue, Nov 20, 2012 at 10:29:04PM +0100, Monthadar Al Jaberi wrote:
>
> Hi there,
>
> This isn't a full answer, but hopefully will point you in the right
> direction.
>
>> server {
>> listen 80;
>> server_name locahost;
>
> That is "locahost", not "localhost". That is the reason that the order
> of server{} blocks matters.
>
>> location / {
>> proxy_pass http://localhost:8080/;
> ...
>
>> From my host PC I seem to be able to visit my different fossil
>> projects 192.168.0.101/aaa and 192.168.0.101/bbb.
>
> If that much works, then you've got a good start.
>
>> But this seems to be accidental, because if I move this server block
>> under the default server blocks it stops working.
>
> Not quite: because you have the same "listen" directive in each block,
> whichever is first in the file *is* the default.
>
> (http://nginx.org/en/docs/http/server_names.html probably includes more
> than you want to know.)
>
> So: when this is the default server block, your fossil access works;
> when it isn't, it doesn't. That is down to how nginx chooses which one
> server block to use for this request.
>
>> If I have it above I
>> cant seems to access the php location block in the default server
>> block that I added, 192.169.0.101/index.php don't work.
>
> One request is handled in one server block (usually chosen by comparing
> the Host: header with the server_name value), and then in one location
> within that server.
>
> Your configuration either uses too many server blocks, or ones with
> incorrect server_names.
>
>> Testing from withing the archlinux running nginx:
>> localhost/
>> localhost/index.html
>> localhost/index.php
>
> Those will all use the one server block that has "server_name localhost"
> which, below, says "php goes to php-fpm.sock, all else goes to the
> filesystem".
>
>> All of these works. But localhost/aaa don't work.
>
> That will also use that same server block. So it will serve files from
> /usr/local/nginx/html/aaa.
>
>> If I run the
>> following it works:
>>
>> lynx localhost:8080/aaa
>
> That will use the fossil service directly, avoiding nginx.
>
>> It seems I am missing some last touch. I want to be able to do
>> something like 192.168.0.101/fossil/aaa.
>
> Decide exactly what url hierarchy you want to use to access nginx to
> reverse proxy to fossil.
>
> That means: which hostname and which /location prefix or prefixes.
>
> Then in the correct server{} block, add the location{} block with the
> proxy_pass stuff that you have that already works.
>
> If you want to use *different* hostnames to access fossil and not-fossil,
> then you will need to configure location{} blocks in different server{}
> blocks.
>
> If you want to use the *same* hostname to access fossil and not-fossil,
> then you will need to configure different location{} blocks in the same
> server{} block to tell nginx which urls should go to fossil and which
> ones should not.
>
> Briefly: move your (working) "location /" block into the "server_name
> localhost" server block, and change it to be (perhaps) "location /aaa".
>
> That might show whether you are moving in the right direction.
>
> Good luck,
>
> f
> --
> Francis Daly francis@daoine.org
>
> _______________________________________________
> nginx mailing list
> nginx@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx



--
Monthadar Al Jaberi

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

nginx + fossil configuration problem

Monthadar Al Jaberi November 20, 2012 04:30PM

Re: nginx + fossil configuration problem

Francis Daly November 20, 2012 06:26PM

Re: nginx + fossil configuration problem

Monthadar Al Jaberi November 21, 2012 01:18PM

Re: nginx + fossil configuration problem

Monthadar Al Jaberi November 21, 2012 01:34PM

Re: nginx + fossil configuration problem

Francis Daly November 21, 2012 01:56PM

Re: nginx + fossil configuration problem

Monthadar Al Jaberi November 21, 2012 04:26PM

Re: nginx + fossil configuration problem

Monthadar Al Jaberi November 21, 2012 04:46PM

Re: nginx + fossil configuration problem

Francis Daly November 21, 2012 05:44PM

Re: nginx + fossil configuration problem

Francis Daly November 21, 2012 05:20PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 226
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready