Nginx:无法在单个URL中运行多个站点

Nginx:无法在单个URL中运行多个站点,nginx,server,Nginx,Server,在我的应用程序中,我有3个站点-用户前端、管理面板和启动页面。我想在本地主机中运行用户前端:8080、在本地主机中运行管理面板:8080/Admin和在本地主机中运行启动:8080/Splash 为了运行这一切,我使用了以下配置: server { listen 8080; server_name localhost; root /home/ajit/git/univisior; location / { alias /home/ajit/git/univi

在我的应用程序中,我有3个站点-用户前端、管理面板和启动页面。我想在本地主机中运行用户前端:8080、在本地主机中运行管理面板:8080/Admin和在本地主机中运行启动:8080/Splash

为了运行这一切,我使用了以下配置:

server {
    listen 8080;
    server_name localhost;  
    root /home/ajit/git/univisior;

location / {
    alias /home/ajit/git/univisior/FrontEnd/dist/;
    index index.html;
    try_files $uri $uri/ /index.html;

}
location /admin{
    alias /home/ajit/git/univisior/admin/dist/;
    index index.html;
    try_files $uri $uri/ index.html;

}

location /splash {
    alias /home/ajit/git/univisior/Splash/dist/;
    index index.html;
    try_files $uri $uri/ /index.html;

}

location /api {
    proxy_pass http://localhost:3000/api;

 }

}
此配置的问题是

  • 当我打开管理站点(localhost:8080/admin)时,我得到了一个错误

  • VM189:1未捕获的语法错误:意外标记从别名指令中删除尾随的
    /

    location / {
        alias /home/ajit/git/univisior/FrontEnd/dist/;
        index index.html;
        try_files $uri $uri/ /index.html;
    
    }
    location /admin{
        # alias /home/ajit/git/univisior/admin/dist/;
        alias /home/ajit/git/univisior/admin/dist;
        # index index.html;
        # try_files $uri $uri/ index.html;
        try_files $url $uri/;
    
    }
    
    location /splash {
        # alias /home/ajit/git/univisior/Splash/dist/;
        alias /home/ajit/git/univisior/Splash/dist;
        # index index.html;
        # try_files $uri $uri/ /index.html;
        try_files $uri $uri/;
    }
    

    从alias指令中删除尾随的
    /

    location / {
        alias /home/ajit/git/univisior/FrontEnd/dist/;
        index index.html;
        try_files $uri $uri/ /index.html;
    
    }
    location /admin{
        # alias /home/ajit/git/univisior/admin/dist/;
        alias /home/ajit/git/univisior/admin/dist;
        # index index.html;
        # try_files $uri $uri/ index.html;
        try_files $url $uri/;
    
    }
    
    location /splash {
        # alias /home/ajit/git/univisior/Splash/dist/;
        alias /home/ajit/git/univisior/Splash/dist;
        # index index.html;
        # try_files $uri $uri/ /index.html;
        try_files $uri $uri/;
    }
    

    我能够解决这个问题。管理和启动页面中的问题是相同的。index.html中图像和脚本文件的路径写为

    <img src="../images/logo.png" alt="logo">
    .
    .
    <script src="../bower_components/jquery/dist/jquery.js"></script>
    <script src="../bower_components/angular/angular.js"></script>
    
    由于
    将查找url localhost:8080/images/logo.png,而不是localhost:8080/admin/images/logo.png,这一问题也会出现,因为此浏览器无法获取脚本/图像,所以同样适用于脚本

    为了解决这个问题,我将index.html中的。/替换为这样一个最终的index.html

    <img src="images/logo.png" alt="logo">
    .
    .
    <script src="bower_components/jquery/dist/jquery.js"></script>
    <script src="bower_components/angular/angular.js"></script>
    
    
    .
    .
    
    我能够找出问题所在。管理和启动页面中的问题是相同的。index.html中图像和脚本文件的路径写为

    <img src="../images/logo.png" alt="logo">
    .
    .
    <script src="../bower_components/jquery/dist/jquery.js"></script>
    <script src="../bower_components/angular/angular.js"></script>
    
    由于
    将查找url localhost:8080/images/logo.png,而不是localhost:8080/admin/images/logo.png,这一问题也会出现,因为此浏览器无法获取脚本/图像,所以同样适用于脚本

    为了解决这个问题,我将index.html中的。/替换为这样一个最终的index.html

    <img src="images/logo.png" alt="logo">
    .
    .
    <script src="bower_components/jquery/dist/jquery.js"></script>
    <script src="bower_components/angular/angular.js"></script>
    
    
    .
    .
    
    从别名中删除/粘贴日志文件后,我收到“403禁止”错误。请发布或粘贴日志文件。更新的配置不起作用。当我打开localhost:8080/admin和localhost:8080/splash时,仅打开用户前端。从别名中删除/删除后,我收到“403禁止”错误。请发布或粘贴日志文件。更新的配置不起作用。当我打开localhost:8080/admin和localhost:8080/splash时,只会打开用户前端。