Hi Jon, I went through the process of setting up fossil behind NGINX the same way your looking for, where you can specify the repository depending on the url. At first I tried the proxy method with xinetd, but had to play with path's of the actual repositories before it would work.
The solution I went with was to use scgi with configuration similar to the following: In /etc/nginx.conf location ~ ^/fossil(.*)$ { fastcgi_pass unix:/run/fcgiwrap.sock; include fossil_fcgi_params; fastcgi_param SCRIPT_NAME "/fossil"; } In fossil_fcgi_params fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; fastcgi_param REMOTE_USER $remote_user; And the cgi script as #!/usr/bin/fossil directory: /srv/fossil/ notfound: http://localhost/invalid.html Where /srv/fossil is where I keep the .fossil files. Stephen C On 04/03/14 01:34 PM, Jon wrote: > New to fossil and am trying to stand up a simple fossil server fronted > by nginx. I've read the website doco, spelunked the mailing list, and > have tweaked configurations a bit. All to no avail. > > I want to use fossil and nginx to make multiple repos available via > base url's such as > > http://somewhere.mydomain.com/partner/<repo-name> > > in which fossil repos live under root-owned /srv/fossils/partner as > *.fossil files > > With limited nginx configuration tweaking the best I've been able to > achieve is a fossil repo main page but with invalid links (e.g. - > http://127.0.0.1:8080/logicalmaps/index) pointing to the fossil server > running in localhost mode. Via the following I see fossil redirects > which likely means a more complex nginx config. > > $ curl -I http://stimpy/partner/logicalmaps > HTTP/1.1 302 Moved Temporarily > Server: nginx > Date: Tue, 04 Mar 2014 18:03:09 GMT > Content-Type: text/html; charset=utf-8 > Content-Length: 80 > Connection: keep-alive > Location: http://stimpy/logicalmaps/index > X-Frame-Options: SAMEORIGIN > Cache-control: no-cache > > Below are the relevant snippets of my original fossil and nginx config > that does not work. > > Before I spend more time (likely in the wrong direction) I'd > appreciate your guidance as to the best way to setup fossil + nginx. > I'd prefer nginx in reverse http proxy mode but SCGI is also fine. > Once the base config works, I'll move to HTTPS. > > Jon > > > > ==== BASIC FOSSIL and NGINX CONFIGURATION ==== > > # upstart script - /etc/init/fossil.conf > description "Fossil DVCS Server" > > start on runlevel [2345] > stop on runlevel [!2345] > respawn > > exec /usr/local/sbin/fossil server --localhost /srv/fossils/partner > > > # main nginx config - /etc/nginx/nginx.conf > ... > http { > include /etc/nginx/mime.types; > default_type application/octet-stream; > ... > include /etc/nginx/conf.d/*.conf; > } > > > # default nginx config - /etc/nginx/conf.d/default.conf > server { > listen 80 default_server; > server_name stimpy; > server_tokens off; > ... > location / { > root /usr/share/nginx/html; > index index.html index.htm; > } > ... > location /partner/ { > proxy_pass http://127.0.0.1:8080/; > proxy_connect_timeout 30s; > proxy_set_header Host $host; > proxy_set_header X-Real-IP $remote_addr; > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > } > ... > } > > > jon@stimpy:~$ ps aux | egrep 'nginx|fossil' > root 2279 0.0 0.0 2584 372 ? Ss Feb26 0:00 > /usr/local/sbin/fossil server --localhost /srv/fossils/partner > root 16849 0.0 0.2 31208 2652 ? S 12:56 0:00 > nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf > nginx 16850 0.0 0.1 31564 1656 ? S 12:56 0:00 > nginx: worker process > > > _______________________________________________ > fossil-users mailing list > fossil-users@lists.fossil-scm.org > http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
_______________________________________________ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users