simple try_files not working
Maxim Dounin
mdounin at mdounin.ru
Wed Feb 17 20:58:32 MSK 2010
Hello!
On Wed, Feb 17, 2010 at 06:40:30PM +0100, Rapsey wrote:
> What I want is for nginx to serve a file if it can (it exists), if not to
> proxy the request to another server.
> I'm using 0.8.33
>
> server {
> listen 8080 default;
> server_name ~^(www\.)?(?<domain>.+)$;
> index index.html index.htm;
>
> if ($host ~* www\.(.*)) {
> set $host_without_www $1;
> rewrite ^(.*)$ http://$host_without_www$1 permanent;
> }
> location / {
> root /var/www/htdocs/$domain;
> try_files $uri @def;
> }
>
> location ~ \.php$ {
> proxy_set_header Host $http_host;
> proxy_pass http://localhost:2000;
> }
>
> location @def {
> proxy_set_header Host $http_host;
> proxy_pass http://localhost:9090;
> }
> }
> }
This is not going to work at all since you have an extra "}".
> If I run:
> curl -v -H "Host: domain.tv" "http://server_ip:8080/somefile"
>
> The request always gets sent to the server on 9090, even though
> /var/www/htdocs/domain/somefile exists.
> What is wrong with my config?
According to your config file should be at
/var/www/htdocs/domain.tv/somefile (note ".tv").
Maxim Dounin
More information about the nginx
mailing list