麻烦 运行 nginx 上同一域中的两个 Web 应用程序
Trouble running two web applications on the same domain on nginx
我想要一个 nginx 服务器在同一域中托管 Web 应用程序,但路径不同。
例如,
http://example.org/booksapp/signin.html 应该指向第一个应用程序,
http://example.org/shoesapp/signin.html 应该指向第二个应用程序
在我的主机中,我有两个文件夹,每个应用一个:
/var/webfolder/booksapp 和 /var/webfolder/shoesapp
我的nginx配置如下
server {
server_name example.org;
index index.html index.htm;
location /foodapp {
root /var/webfolder;
try_files $uri $uri/ =404;
}
location /shoesapp {
root /var/webfolder;
try_files $uri $uri/ =404;
}
listen [::]:80;
listen 80;
}
此配置无效。我的浏览器在尝试加载任一 Web 应用程序时只显示空白页面。
同时,nginx 日志文件显示应用程序尝试加载的每个资源的 404 列表。
我做错了什么?
您必须更改 html 文件才能使用正确的路径。
您的 "booksapp" 位于 example.org/booksap/
,html 页面必须使用同一路径加载任何静态资源。
这是示例 html 文件的头部部分。如果您将其部署到您的任何站点,它将无法工作,除非您指定正确的路径,否则 nginx 无法找到 "normalize.css" 和 "styles.css"。现在 nginx 充当两个应用程序之间的路由器,你不能只请求一个文件,你必须指定哪个应用程序。
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type">
<title>sakura demo</title>
<link href="normalize.css" rel="stylesheet" type="text/css">
<link href="styles.css" rel="stylesheet" type="text/css" media="all">
</head>
应该是:
<link href="booksap/normalize.css" rel="stylesheet" type="text/css">
<link href="booksap/styles.css" rel="stylesheet" type="text/css" media="all">
我想要一个 nginx 服务器在同一域中托管 Web 应用程序,但路径不同。 例如, http://example.org/booksapp/signin.html 应该指向第一个应用程序, http://example.org/shoesapp/signin.html 应该指向第二个应用程序
在我的主机中,我有两个文件夹,每个应用一个: /var/webfolder/booksapp 和 /var/webfolder/shoesapp
我的nginx配置如下
server {
server_name example.org;
index index.html index.htm;
location /foodapp {
root /var/webfolder;
try_files $uri $uri/ =404;
}
location /shoesapp {
root /var/webfolder;
try_files $uri $uri/ =404;
}
listen [::]:80;
listen 80;
}
此配置无效。我的浏览器在尝试加载任一 Web 应用程序时只显示空白页面。 同时,nginx 日志文件显示应用程序尝试加载的每个资源的 404 列表。
我做错了什么?
您必须更改 html 文件才能使用正确的路径。
您的 "booksapp" 位于 example.org/booksap/
,html 页面必须使用同一路径加载任何静态资源。
这是示例 html 文件的头部部分。如果您将其部署到您的任何站点,它将无法工作,除非您指定正确的路径,否则 nginx 无法找到 "normalize.css" 和 "styles.css"。现在 nginx 充当两个应用程序之间的路由器,你不能只请求一个文件,你必须指定哪个应用程序。
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type">
<title>sakura demo</title>
<link href="normalize.css" rel="stylesheet" type="text/css">
<link href="styles.css" rel="stylesheet" type="text/css" media="all">
</head>
应该是:
<link href="booksap/normalize.css" rel="stylesheet" type="text/css">
<link href="booksap/styles.css" rel="stylesheet" type="text/css" media="all">