使用 nginx 托管多个网站

host multiple website with nginx

我有 Ubuntu 服务器 16.04 服务器,安装了 nginx (nginx/1.10.3)

我只有一个 DNS 名称energy.mysite.local,我需要将其用于多个网站。

我有 2 个放置网站内容的目录

  1) /var/www/website/
  2) /var/www/web-site/

my sites-available & sites-enabled 文件夹内容 2 个文件 website & web-site

website

的内容
server {

    listen 443 ssl;
    include snippets/self-signed.conf;
    include snippets/ssl-params.conf;

    location /website/ {
             alias /var/www/website/;
             gzip_static on;
             expires max;
             add_header Cache-Control public;
             autoindex off;
    }

    server_name energy.mysite.local/website;

    location / {
     try_files $uri $uri/ =404;
    }
}

web-site

的内容
server {

    listen 443 ssl;
    include snippets/self-signed.conf;
    include snippets/ssl-params.conf;

    location /web-site/ {
             alias /var/www/web-site/;
             gzip_static on;
             expires max;
             add_header Cache-Control public;
             autoindex off;
    }

    server_name energy.mysite.local/web-site;

    location / {
     try_files $uri $uri/ =404;
    }
}

这样我就可以使用下面的网站了

https://energy.mysite.local/website/1.0.1/src/abc.js

https://energy.mysite.local/web-site/2.0.1/src/abc.js

目前https://energy.mysite.local/web-site/2.0.1/src/abc.js工作正常

但是 https://energy.mysite.local/website/1.0.1/src/abc.js 给我 404

有什么方法可以完成吗?

从你的问题来看,这两个位置似乎共享同一个根,在这种情况下可能不需要单独的 location blocks and alias directive

例如:

server {
    listen 443 ssl;
    server_name energy.mysite.local;

    include snippets/self-signed.conf;
    include snippets/ssl-params.conf;

    root /var/www;

    gzip_static on;
    expires max;
    add_header Cache-Control public;

    location / {
        try_files $uri $uri/ =404;
    }
}