同一服务器实例上多个静态站点的Nginx配置

时间:2019-02-28 13:19:00

标签: nginx vue.js vue-router nginx-location nginx-config

我有三个静态站点。我正在使用Vue 2并为每个文件夹运行构建。

我想将所有三个静态文件托管在同一服务器实例上。现在我没有域,所以我想在服务器的IP本身上托管。

我在html / www文件夹中有一个文件夹

first_folder
second_folder
third_folder

以上三个文件夹中都有index.html文件。

假设我的IP地址为3.12.178.229

我要访问

之类的文件夹
http://3.12.178.229     // i.e path for first_folder
http://3.12.178.229/second_path    // i.e path for second_folder
http://3.12.178.229/third_path     // i.e path for third_folder

我能够访问first_folder拥有的index.html文件,但是当我尝试使用IP http://3.12.178.229/second_folder访问second_folder时,它什么也没显示。

{
   listen 80;
   server_name 3.12.178.229;

   location / {
     root path_to_first_folder/first_folder; // I am able to access this
     index  index.html index.htm;
     try_files $uri $uri/ /index.html;
   }

   location /second_path {
     root path_to_first_folder/second_folder; // I am able to access this

     index  index.html index.htm;
     try_files $uri $uri/ /index.html;
   }

   location /third_path {
     root path_to_first_folder/third_folder; // I am able to access this

     index  index.html index.htm;
     try_files $uri $uri/ /index.html;
   }

}

1 个答案:

答案 0 :(得分:0)

通过将root指令的值与URI串联来构造请求文件的路径名。因此,如果rootsecond_path实际上是相同的名称,则只能将second_folder与子文件夹一起使用。有关详细信息,请参见this document

例如:

location /foo {
    root /path/to/root;
}

URI /foo/index.html位于/path/to/root/foo/index.html


如果second_pathsecond_folder是不同的名称,则需要使用alias指令。有关详细信息,请参见this document

例如:

location /foo {
    alias /path/to/root/bar;
}

URI /foo/index.html位于/path/to/root/bar/index.html