"This link may not be followed from within Galaxy" using nginx and upload module.
Any idea would be appreciated. I get a "This link may not be followed from within Galaxy" after following these steps: Get Data -> Upload File -> File Format: Type "lpe" -> select "lped" from autocomplete list. I've compiled latest stable nginx in CentOS 6.3 with upload module http://www.grid.net.ru/nginx/upload.en.html Galaxy being started by galaxy user nginx started by root user (this scenario reports a nginx worker process owned by galaxy) I'm serving Galaxy at a subdirectory as explained in http://wiki.galaxyproject.org/Admin/Config/Performance/nginx%20Proxy I'm not using External user authentication I suspect this is a problem in nginx.conf upload module directives. Do you know if it's ok to change location /_x_accel_redirect/ { with location /galaxy/_x_accel_redirect/ { ? Besides I couldn't find an _upload_done directory. Do you have an "_upload_done" or "_upload" directory? Where it's located? This is my nginx.conf server { ... more directives location /galaxy { proxy_pass http://galaxy_app; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /galaxy/static { alias /home/galaxy/galaxy-dist/static; expires 24h; } ....... # more directives location /galaxy/_x_accel_redirect/ { internal; alias /; } location /galaxy/_upload { upload_store /home/galaxy/galaxy-dist/database/tmp/upload_store; upload_pass_form_field ""; upload_set_form_field "__${upload_field_name}__is_composite" "true"; upload_set_form_field "__${upload_field_name}__keys" "name path"; upload_set_form_field "${upload_field_name}_name" "$upload_file_name"; upload_set_form_field "${upload_field_name}_path" "$upload_tmp_path"; upload_pass_args on; upload_pass /_upload_done; } location /galaxy/_upload_done { set $dst /tool_runner/index; if ($args ~ nginx_redir=([^&]+)) { set $dst $1; } rewrite "" $dst; } } Cheers
On Nov 16, 2012, at 1:15 AM, Marcelo Timmerman wrote:
Any idea would be appreciated. I get a "This link may not be followed from within Galaxy" after following these steps:
Get Data -> Upload File -> File Format: Type "lpe" -> select "lped" from autocomplete list.
I've compiled latest stable nginx in CentOS 6.3 with upload module http://www.grid.net.ru/nginx/upload.en.html Galaxy being started by galaxy user nginx started by root user (this scenario reports a nginx worker process owned by galaxy) I'm serving Galaxy at a subdirectory as explained in http://wiki.galaxyproject.org/Admin/Config/Performance/nginx%20Proxy I'm not using External user authentication
I suspect this is a problem in nginx.conf upload module directives. Do you know if it's ok to change
location /_x_accel_redirect/ {
with
location /galaxy/_x_accel_redirect/ {
?
Hi Marcelo, For the moment, we can ignore /_x_accel_redirect/, since that is only used for downloading data from Galaxy.
Besides I couldn't find an _upload_done directory. Do you have an "_upload_done" or "_upload" directory? Where it's located?
This is an internal path used by nginx and is not exposed.
This is my nginx.conf
server { ... more directives location /galaxy { proxy_pass http://galaxy_app; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /galaxy/static { alias /home/galaxy/galaxy-dist/static; expires 24h; } ....... # more directives location /galaxy/_x_accel_redirect/ { internal; alias /; } location /galaxy/_upload { upload_store /home/galaxy/galaxy-dist/database/tmp/upload_store; upload_pass_form_field ""; upload_set_form_field "__${upload_field_name}__is_composite" "true"; upload_set_form_field "__${upload_field_name}__keys" "name path"; upload_set_form_field "${upload_field_name}_name" "$upload_file_name"; upload_set_form_field "${upload_field_name}_path" "$upload_tmp_path"; upload_pass_args on; upload_pass /_upload_done; } location /galaxy/_upload_done { set $dst /tool_runner/index; if ($args ~ nginx_redir=([^&]+)) { set $dst $1; } rewrite "" $dst; }
The problem might be here. Upon upload completion, you redirect to /_upload_done, but the path set up to handle those requests is /galaxy/_upload_done. The other potential problem is that if you haven't set 'nginx_upload_path' in universe_wsgi.ini to '/galaxy/_upload', then the tool form is POSTing to the wrong path. You should be able to use /galaxy/_upload and /galaxy/_upload_done. However, for this to work, you will need to change 'upload_pass' to '/galaxy/_upload_done' above and set 'nginx_upload_path' in universe_wsgi.ini to '/galaxy/_upload'. --nate
}
Cheers ___________________________________________________________ Please keep all replies on the list by using "reply all" in your mail client. To manage your subscriptions to this and other Galaxy lists, please use the interface at:
participants (2)
-
Marcelo Timmerman
-
Nate Coraor