Location Alias not working
İhsan Doğan
ihsan at dogan.ch
Sun Aug 28 16:59:45 UTC 2016
Hi,
On Saturday, 27 Aug 2016 21:50 +0100, Francis Daly wrote:
> > I've defined a location alias in my nginx.conf:
>
> > location /foo/ {
> > alias /var/www/foo/;
> > }
>
> > Even the directory /var/www/foo exists, Nginx is returns a 404. As I
> > understand, the configuration is right, but I can't see what's wrong.
>
As requested, I've attached the full configuration file.
> What specific test request do you make?
GET /foo/ with curl:
$ curl https://foo.bar.com/foo/
> What file on the filesystem do you want nginx to return?
UFS (FreeBSD).
> What does your error.log say about the 404 response?
2016/08/28 18:53:32 [error] 22231#0: *11704 open()
"/usr/local/www/foo.bar.com404" failed (2: No such file or
directory), client: 2a02:168:9800::50, server: foo.bar.com,
request: "GET /foo/ HTTP/1.1", host: "foo.bar.com"
> (Is there another location{} block that handles your request, instead
> of the one you showed here?)
Not that I'm aware of.
-Ihsan
--
ihsan at dogan.ch http://blog.dogan.ch/
-------------- next part --------------
worker_processes 2;
error_log /var/log/nginx/error.log;
events {
worker_connections 1024;
use kqueue;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
keepalive_timeout 100;
server_tokens off;
charset UTF-8;
gzip on;
gzip_http_version 1.1;
gzip_vary on;
gzip_comp_level 6;
gzip_proxied any;
gzip_types text/plain text/css application/json application/x-javascript application/xml application/xml+rss text/javascript;
gzip_buffers 4 32k;
gzip_disable "MSIE [1-6].(?!.*SV1)";
client_max_body_size 10G;
large_client_header_buffers 4 32k;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don?t use SSLv3 ref: POODLE
ssl_ciphers ECDH+CHACHA20:ECDH+AESGCM:EDH+AESGCM:ECDH+AES256:ECDH+AES128:EDH+AES:!ADH:!AECDH:!MD5:!DSS;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_dhparam /usr/local/etc/nginx/dhparam.pem;
ssl_ecdh_curve secp384r1;
ssl_stapling on;
ssl_stapling_verify off;
log_format ssl_custom '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'$gzip_ratio '
'$ssl_protocol:$ssl_cipher';
server {
listen 80;
listen [::]:80;
server_name foo.bar.com;
return 301 https://$server_name$request_uri; # enforce https
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name foo.bar.com;
access_log /var/log/nginx/foo.bar.com/access.log ssl_custom;
ssl_certificate server.crt;
ssl_certificate_key server.key;
root /usr/local/www/foo/bar;
fastcgi_buffers 64 4K;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php index.html;
location = /robots.txt {
allow all;
log_not_found off;
}
location ~ /owncloud/(?:\.htaccess|data|config|db_structure\.xml|README) {
deny all;
}
location ~ ^/usr/local/www/foo.bar.com/(owncloud/)?data {
internal;
root /;
}
location ~ ^/var/tmp/oc-noclean/.+$ {
internal;
root /;
}
location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta/public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json/public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^/apps/calendar/caldav.php /remote.php/caldav/ last;
rewrite ^/apps/contacts/carddav.php /remote.php/carddav/ last;
rewrite ^/apps/([^/]*)/(.*\.(css|php))$/index.php?app=$1&getfile=$2 last;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
}
location ~ /pydio/conf/ { deny all; }
location ~ /pydio/data/ { deny all; }
location ~ ^(.+?\.php)(/.*)?$ {
try_files $1 = 404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
fastcgi_param PATH_INFO $2;
fastcgi_param HTTPS on;
fastcgi_param MOD_X_ACCEL_REDIRECT_ENABLED on;
fastcgi_read_timeout 3600;
fastcgi_pass unix:/tmp/php-fpm.sock;
}
# Optional: set long EXPIRES header on static assets
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
}
location /mozsync/ {
rewrite ^/mozsync(.+)$ $1 break;
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 10;
proxy_read_timeout 10;
proxy_pass http://unix:/tmp/mozsync.sock;
}
location /chive/ {
try_files $uri chive/$uri/ /chive/index.php?q=$uri&$args;
}
location /foo/ {
alias /var/www/foo/;
}
}
}
More information about the nginx
mailing list