nginx在路径上提供静态内容

时间:2020-03-28 20:03:45

标签: nginx

我正在运行nginx,并希望在URL https://example.com/myapp上提供静态应用程序。

我有一个server块,如下所示:

server {
  listen 443 ssl http2;
  server_name example.com;

  root /var/www/html;

  location /myapp/ {
    root /home/tri/myapp/dist;
    rewrite ^/myapp/?(.*)$ /$1 break;
  }
}

我希望通过转到https://example.com/myapp,它将为index.html文件提供服务,但事实并非如此。

如果我转到https://example.com/myapp/index.html,则文件正确投放了。但是,如果我只是转到https://example.com/myapp,则会在nginx中收到此错误:

2020/03/28 15:17:40 [error] 27905#27905: *11410 open() "/var/www/html/index.html" failed (2: No such file or directory), client: 73.119.123.242, server: example.com, request: "GET /myapp/ HTTP/2.0", host: "example.com"

因此由于某种原因,它会退回到默认的root指令。

我在做什么错了?

3 个答案:

答案 0 :(得分:1)

您可以使用此配置

Traceback (most recent call last):
  File "D:/My/Path/Python Perfectionnement/analysis/csv.py", line 4, in <module>
    import pandas as pd
  File "C:\Users\Me\AppData\Local\Continuum\anaconda3\envs\pyperf\lib\site-packages\pandas\__init__.py", line 145, in <module>
    from pandas.io.api import (
  File "C:\Users\Me\AppData\Local\Continuum\anaconda3\envs\pyperf\lib\site-packages\pandas\io\api.py", line 8, in <module>
    from pandas.io.excel import ExcelFile, ExcelWriter, read_excel
  File "C:\Users\Me\AppData\Local\Continuum\anaconda3\envs\pyperf\lib\site-packages\pandas\io\excel\__init__.py", line 1, in <module>
    from pandas.io.excel._base import ExcelFile, ExcelWriter, read_excel
  File "C:\Users\Me\AppData\Local\Continuum\anaconda3\envs\pyperf\lib\site-packages\pandas\io\excel\_base.py", line 9, in <module>
    from pandas._libs.parsers import STR_NA_VALUES
  File "pandas\_libs\parsers.pyx", line 12, in init pandas._libs.parsers
ImportError: cannot import name QUOTE_MINIMAL

Process finished with exit code 1

答案 1 :(得分:0)

我仍然不确定为什么我的原始配置不起作用,但是由于有了这个答案https://stackoverflow.com/a/10647080/1368032,我转而使用alias,现在它对我有用(无需重写) :

server {
  listen 443 ssl http2;
  server_name example.com;

  root /var/www/html;

  location /myapp/ {
    alias /home/tri/myapp/dist/;

  }
}

答案 2 :(得分:-1)

您的位置“ / myapp /”在不带“ /”的情况下将与“ / myapp”不匹配-您可能希望调整位置值以使其成为可选值,但我不在可以验证的计算机附近正确的语法。

相关问题