Socket address relative to prefix

Hi there.

I’m using nginx (v0.8.53 on Arch Linux) for web application development
and testing, and I’ve encountered a problem. I’ll specify the problem
first and then explain why I ran into it.

Is there a way to specify a unix socket address (as in “fcgi_pass
unix:/path/to/socket”) relative to nginx prefix? I’ve tried using
“fcgi_pass: unix:relative/path”, but nginx still interpreted it as
absolute path (is this a bug?).

I’d like to be able to specify socket address relative to prefix because
of the setup I use - I run nginx (as well as php fastcgi) as
non-privileged user and keep all the relevant files inside my home dir.
This is mainly for convenience, so that I don’t have to go root
everytime I want to tweak some settings or start and stop servers. I use
only relative paths in nginx.conf, and start nginx with a wrapper script
that sets nginx prefix to the directory it resides in. That way I don’t
have to update config files everytime I move (or copy) this directory.

Any suggestions?


Posted at Nginx Forum:

I know this as posted ages ago however its the number 1 post in google
has no answer.

NGINX uses a path relative to where it was started from when it comes to
reading sockets at least. I am unsure if this affects additional

At first I thought it was reading from the compile prefix but this
seem to be the case and I also dont see any documentation on this.

Here is an example.

Starting NGINX manually from the NGINX folder
cd ~/nginx; sbin/nginx

Now all SOCKET paths are relative to ~/nginx

cd ~; nginx/sbin/nginx

SOCKET paths are now relative to ~

Just figured I would help document.

Posted at Nginx Forum:

Thanks for answering :slight_smile:

By the way, excellent timing - I have just returned, after long break,
experiments with web development, so I’ll definitely make use of this

Back then I worked around this problem by preprocessing config files
time the service was started, and I’ll probably still have to to this
php and mysql. But it’s nice that I won’t need it for Nginx anymore.

Posted at Nginx Forum: