配置 nginx 来提供静态文件服务

配置 nginx 来提供静态文件服务

我正在尝试从运行 Debian 8 的 Google 计算引擎实例提供静态文件(HTML、JS 和 CSS)。我使用 git 将 Web 应用程序克隆到带有/var/www/prod/app命令的文件夹中

sudo git clone <my repo>

我在 sites-enabled 文件夹中创建了一个 conf 文件app.conf。以下是内容

server {
    listen 80;
    root /var/www/prod/app;
    location / {
    }
}

当我输入我的机器的 IP 地址/路径时,这个配置是否足以让我的机器提供文件服务?

当我在浏览器中输入实例的 IP 地址时,我可以看到该welcome to nginx页面。但是 prod/app 中的任何文件均未提供。我尝试的所有路径都出现 404。有人能帮我配置一下吗?

答案1

您需要添加try_files内部位置并使其成为默认服务器:

server {
    listen 80 default_server;

    root /var/www/prod/app;

    location / {
        try_files $uri $uri/ /index.html;
    }
}

然后需要重新启动nginx服务。

答案2

我找到了答案。Nginx 在以下路径中有一个默认配置文件(不带扩展名“.conf”)。

/etc/nginx/sites-enable/default

默认配置有一个用于为default_server文件夹提供服务的服务器块/var/www/html。这将覆盖我为提供没有字段的静态文件所做的任何配置server_name

我注释掉了这些行,一切如预期般运行。

感谢 Alexy Ten 和 Tero Kilkaken 为我指明正确的方向。

相关内容