Yes, sorry, I'm not using scgi, but I'm not using fast_cgi either. I
believe its using cgi alone, which is being implemented by fast_cgi.
Since I'm using cgi to execute fossil, I need to include the stub
script, which fast_cgi executes. In your nginx location example, fossil
is acting as the scgi server.
Hope this helps.
Stephen C
On 04/03/14 10:27 PM, Jon wrote:
> Thank you. Your setup is fastcgi, not scgi, correct?
>
> I'm now unclear about the scgi setup. From the wiki I thought scgi
> requires just two pieces. First, start fossil like
>
> fossil --localhost --scgi /srv/fossils/partner
>
> and second, set an nginx location similar to
>
> location ~ ^/partner/ {
> include scgi_params;
> scgi_pass 127.0.0.1:8080 <http://127.0.0.1:8080>;
> scgi_param SCRIPT_NAME "/partner";
> }
>
> A stub cgi script is not needed.
>
> I'll tinker with scgi tomorrow, but even if I get it working, I don't
> yet see how scgi ensures fossil generates correct links to it's gui
> while that route back user url's similar to
>
> http://somewhere.mydomain.com/partner/<repo-name>/...
>
> back to the fossil server listening to sgci protocol traffic
> on127.0.0.1:8080. With scgi I think I still need to configure nginx
> `location` trickery to handle uri and :80 to 127.0.0.1:8080
> <http://127.0.0.1:8080> issues.
>
> Feels like I'm missing a piece of the puzzle and overcomplicating
> nginx + fossil.
>
>
> On Tue, Mar 4, 2014 at 4:15 PM, Stephen Cripps <[email protected]
> <mailto:[email protected]>> wrote:
>
> 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
>> <tel:2%C2%A0%2031208%C2%A0%202652> ? 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
>> [email protected]
>> <mailto:[email protected]>
>> http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
>
>
> _______________________________________________
> fossil-users mailing list
> [email protected]
> <mailto:[email protected]>
> http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
>
>
>
>
> _______________________________________________
> fossil-users mailing list
> [email protected]
> http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
_______________________________________________
fossil-users mailing list
[email protected]
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users