不带 vhost 的 Nginx 配置 server_name

不带 vhost 的 Nginx 配置 server_name

我正在尝试让 nginx 工作,但我不知道如何在 nginx 配置中设置 server_name。

这是我的配置:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name     ~localhost\/<domain>\/www\/(.)*$;
    set             $try_dir $domain;

    root /media/andrew/data/www/hosts/$try_dir/www;
    index index.php index.html index.htm index.nginx-debian.html;

    location / {
        try_files   $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }

    location ~ /\.(ht|gitignore) { # deny access to .htaccess files, if Apache's document root concurs with nginx's $
        deny all;
    }

    location ~ \.(neon|ini|log|yml)$ { # deny access to configuration files
        deny all;
    }

}

我需要通过 URL 访问我的项目:http://localhost/项目名称/www

现在我收到 404 响应。我认为问题出在 server_name 中的正则表达式上。有人能帮我配置吗?

答案1

服务器名称是预期位于 URI 的主机部分的字符串。

如果你只想从本地主机访问你的项目,那么 sever_name 将是 localhost

NGINX 文档解释得很好。可以在这里找到。 http://nginx.org/en/docs/http/server_names.html

相关内容