使用 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;
}
}
我有 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;
}
}