我正在尝试从运行 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 为我指明正确的方向。