nginx 提供静态文件,但是当我转到它下载的路由时。html
nginx to serve static file but instead when i go to the route it downloads the .html
我正在尝试为我的 nginx 配置中的特定路由提供健康状态页面。
我有一个 docker 文件,可以将 html
复制到正确的位置并确认它在那里。
但是,当我导航到路线 /en/health
时,当网站启动时我没有在屏幕上看到基本的 html 页面 运行 但它会将文件下载到我的桌面。
我的 HML 文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Sample site</title>
</head>
<body>
<div<h1>I am a healthy page</h1>></div>
</body>
</html>
我的 nginx 配置:
server {
listen 8080;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location /en/health {
alias /usr/share/nginx/html/en/health/;
index health.html;
}
location /nginx_status {
stub_status;
access_log off;
allow 127.0.0.1;
deny all;
}
}
如何通过 nginx 配置将 health.html
作为网页单独提供?
首先,您应该将 root /usr/share/nginx/html;
移动到 server
块上下文,因为您的大多数 location
块都使用相同的文档根目录。甚至 location /en/health
块似乎也在使用相同的文档根目录。
与其依靠 alias
和 index
来找到正确的文件,不如使用 try_files
明确定义您想要 return.[=18= 的文件]
例如:
location /en/health {
try_files /en/health/index.html =404;
}
我正在尝试为我的 nginx 配置中的特定路由提供健康状态页面。
我有一个 docker 文件,可以将 html
复制到正确的位置并确认它在那里。
但是,当我导航到路线 /en/health
时,当网站启动时我没有在屏幕上看到基本的 html 页面 运行 但它会将文件下载到我的桌面。
我的 HML 文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Sample site</title>
</head>
<body>
<div<h1>I am a healthy page</h1>></div>
</body>
</html>
我的 nginx 配置:
server {
listen 8080;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location /en/health {
alias /usr/share/nginx/html/en/health/;
index health.html;
}
location /nginx_status {
stub_status;
access_log off;
allow 127.0.0.1;
deny all;
}
}
如何通过 nginx 配置将 health.html
作为网页单独提供?
首先,您应该将 root /usr/share/nginx/html;
移动到 server
块上下文,因为您的大多数 location
块都使用相同的文档根目录。甚至 location /en/health
块似乎也在使用相同的文档根目录。
与其依靠 alias
和 index
来找到正确的文件,不如使用 try_files
明确定义您想要 return.[=18= 的文件]
例如:
location /en/health {
try_files /en/health/index.html =404;
}