NginX在进入网络应用程序之前不会提供静态文件index.html

时间:2019-12-22 11:45:44

标签: nginx nginx-reverse-proxy

我正在使用nginx来提供在Ubuntu 18.04服务器上运行的Go Web应用程序。我希望它在进入mydomain.com时首先响应index指令,但是在nginx配置下,它直接进入Web应用程序,而忽略了index.html文件。如果我得到mydomain.com/index.html却可以,但是不会从索引中获取该文件。 /var/log/nginx/error.log没有错误。

使用chown将静态文件root:www-data修改为chmod 640

我的静态文件位于/srv/static/上,而我的Go Web服务器位于/srv/web/

这是我的网站可用的配置文件:

server {
       listen         80;
       server_name    mydomain.com;
       return         301 https://$server_name$request_uri;
}

server {
        server_name mydomain.com;

        listen 443 ssl;

        ssl on;
        ssl_certificate     /etc/letsencrypt/live/mydomain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;

        root /srv/static; 

        index index.html;

        location / {          
           try_files $uri @proxy;
        }

        location @proxy {
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $remote_addr;
           proxy_set_header Host $host;
           proxy_pass http://127.0.0.1:8000;
        }
}

1 个答案:

答案 0 :(得分:2)

location / {
    try_files $uri $uri/ @proxy; # add $uri/ here
}