Updating to nginx 0.6.36 with the nginx upload module 2.0.9Edit
I wasn’t going to update to nginx 0.6.36 but seeing as I am about to start testing the nginx upload module (see ticket #1193) and I would have to rebuild nginx anyway for that, I thought I’d use the latest stable release.
Building on Mac OS X Leopard 10.5.6
Build process
wget http://www.grid.net.ru/nginx/download/nginx_upload_module-2.0.9.tar.gz
tar xzvf nginx_upload_module-2.0.9.tar.gz
wget http://sysoev.ru/nginx/nginx-0.6.36.tar.gz
tar xzvf nginx-0.6.36.tar.gz
cd nginx-0.6.36
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--add-module=../nginx_upload_module-2.0.9
make
sudo make install
The build is pretty much identical to the normal process (see "Updating to nginx 0.6.35" for example), but you’ll see something like this at the configuration stage:
configuring additional modules
adding module in ../nginx_upload_module-2.0.9
+ ngx_http_upload_module was configured
Changes
The script/nginx
helper script that I use in local Rails development no longer works:
$ script/nginx
nginx not running: starting
2009/04/27 23:16:50 [emerg] 64491#0: mkdir() "/usr/local/nginx/proxy_temp" failed (13: Permission denied)
Not really sure why it’s trying to create that directory, seeing as my config explicitly tells it to create it elsewhere; here’s the relevant snippet:
server {
listen 127.0.0.1:3001;
server_name rails.example.local;
rewrite ^/(.*) https://localhost:3002/$1 permanent;
client_body_temp_path /Users/wincent/trabajo/unversioned/wincent.dev/src/tmp/client_body_temp;
fastcgi_temp_path /Users/wincent/trabajo/unversioned/wincent.dev/src/tmp/fast_cgi_temp;
proxy_temp_path /Users/wincent/trabajo/unversioned/wincent.dev/src/tmp/proxy_temp;
access_log /Users/wincent/trabajo/unversioned/wincent.dev/src/log/access_log;
} # end: server
server {
listen 127.0.0.1:3002;
ssl on;
ssl_certificate /Users/wincent/trabajo/unversioned/wincent.dev/src/config/local/ssl.crt;
ssl_certificate_key /Users/wincent/trabajo/unversioned/wincent.dev/src/config/local/ssl.key;
server_name rails.example.local;
root /Users/wincent/trabajo/unversioned/wincent.dev/src/public;
client_body_temp_path /Users/wincent/trabajo/unversioned/wincent.dev/src/tmp/client_body_temp;
fastcgi_temp_path /Users/wincent/trabajo/unversioned/wincent.dev/src/tmp/fast_cgi_temp;
proxy_temp_path /Users/wincent/trabajo/unversioned/wincent.dev/src/tmp/proxy_temp;
Ok, I just tried rebuilding without the module:
cd nginx-0.6.36
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make
sudo make install
And have confirmed that the error is related to the upload module (the error doesn’t occur without the module).
Further investigation shows that proxy_temp_path
configuration in both server
and http
blocks is ignored by the module; it always uses the default path.
For now, a workaround to get nginx starting again is to just created the default path:
sudo mkdir /usr/local/nginx/proxy_temp