2

我创建了一个 Django 应用程序,它有两个名为“api”和“consumer”的应用程序。现在我想为这两个应用程序使用子域。像api.server.comserver.com。我在网上搜索并找到了 django-hosts,所以我在我的 localhost 中实现了它并且工作正常。

之后,我将它部署在 AWS EC2 实例上并在 Godaddy 中创建子域,并将根域和子域都指向我的实例 IP。根域工作正常,但是当我尝试访问api.server.com时,它显示了默认的 Welcome to Nginx屏幕。请帮我解决这个问题。

nginx.conf

server{
    server_name server.com, api.server.com;
    access_log  /var/log/nginx/example.log;

    location /static/ {
        alias /home/path/to/static/;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/username/project/project.sock;
    }
}
4

2 回答 2

2

You don't need the , a simple space will do.

server_name server.com  api.server.com;

Also you can use wildcards, see the documentation.

server_name *.server.com;
于 2020-03-25T12:52:30.473 回答
0

您不必使用插件(如 django-hosts)来实现您想要做的事情。为您要创建的每个子域(server.com 和 api.server.com)创建 2 个不同的 nginx 配置,并将请求从api.server.comto /apiURL 和请求从server.comto转发/。以下是一个基本示例。

服务器.com

server {
    listen 80;

    server_name server.com;
        location / {
            proxy_pass http://127.0.0.1:3000$request_uri;
    }

}

api.server.com

server {
    listen 80;

    server_name api.server.com;
        location / {
            proxy_pass http://127.0.0.1:3000/api$request_uri;
    }

}

我建议不要不必要地依赖 3rd 方插件。有关更多详细信息,请参阅https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/

于 2020-03-26T08:10:47.917 回答