如何使用nginx创建子域并将API映射到localhost:80?

时间:2018-10-03 22:59:43

标签: docker nginx subdomain

我有一个在localhost:80上运行我的 api 的码头工人,在我的战线上有2个文件夹。

这就是我想要的:

  • 如果我访问api.example.com,请将其映射到localhost:80
  • 如果我访问admin.example.com,请将其映射到文件夹~/admin
  • 如果我访问example.com,请将其映射到文件夹~/front

该怎么办?

1 个答案:

答案 0 :(得分:0)

我从@ Patrick-Mevzek找到了答案并表示感谢。

我通过将以下服务器块添加到我的nginx配置中解决了我的问题。

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    root         /home/erfantahvieh.com/front;

    server_name domain.example www.domain.example;                

    index index.html index.htm index.nginx-debian.html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
         autoindex on;
         autoindex_exact_size off;
    }

    error_page 404 /404.html;
            location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
            location = /50x.html {
    }
}

server {
    listen       80;
    root         /home/erfantahvieh.com/admin;

    server_name admin.domain.example www.admin.domain.example;                

    index index.html index.htm index.nginx-debian.html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
    }

    error_page 404 /404.html;
            location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
            location = /50x.html {
    }
}

server {
    listen       80;
    root         /usr/share/nginx/html;

    server_name api.domain.example www.api.domain.example;                

    index index.html index.htm index.nginx-debian.html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
            proxy_pass http://xxx.xxx.xxx.xxx:8080/;
    }
}