配置nginx以服务两个网站

时间:2019-05-07 13:24:09

标签: reactjs nginx static-files

当前,我正在使用nginx来提供我的API文档(mywebsites.com)的静态文件,我想添加另一个网站:mywebsites.com/subwebsite。
所以我编辑了Nginx配置文件以同时服务于它们:

server {
listen      0.0.0.0:80;
server_name mywebsite.com;

client_max_body_size 1m;
access_log            /var/log/nginx/error.log;
error_log             /var/log/nginx/static.log;

#location ~ /\.git {
 #  deny all;
#}

location /subwebsite {
    root  /home/api/portal/build;
    index index.html index.htm;

    try_files $uri $uri/ =404;
}



 location / {
    root  /home/api/application/public;
    index index.html index.htm;

   try_files $uri $uri/ =404;
 }




#sendfile off;
}

问题是当我尝试访问新网站时:mywebsite.com/subwebsite ..我找不到404。
当我尝试更改当前服务器以转发到新的子网站时(而不是添加位置/ subwebsite,而是更改位置/的根目录),它可以工作。
原始文件:

server {
listen      0.0.0.0:80;
server_name mywebsite.com;

client_max_body_size 1m;
access_log            /var/log/nginx/error.log;
error_log             /var/log/nginx/static.log;

location ~ /\.git {
    deny all;
}

location ~ {
    root  /home/api/application/public;
    index index.html index.htm;

    try_files $uri $uri/ =404;
}

sendfile off;
}


我在这里想念的是什么? 预先感谢

1 个答案:

答案 0 :(得分:0)

我认为,这种位置变化可以为您服务:

location /subwebsite {
    root  /home/api/portal/build;
    try_files $uri /index.html;
}

这样的配置文件似乎更具可读性:

server {
    listen      0.0.0.0:80;
    server_name mywebsite.com;

    root  /home/api/application/public;
    index index.html index.htm;

    client_max_body_size 1m;
    access_log            /var/log/nginx/error.log;
    error_log             /var/log/nginx/static.log;

    #location ~ /\.git {
     #  deny all;
    #}

    location /subwebsite {
        root  /home/api/portal/build;
        try_files $uri /index.html;
    }

    #sendfile off;
}