wvp-GB28181服务器网页报错
请求 URL
http://192.168.6.233:8080/api/server/system/info
请求方法
GET
状态代码
404 Not Found
远程地址
192.168.6.233:8080
引用站点策略
strict-origin-when-cross-origin
定位很清楚:前端在请求
GET /api/server/system/info
但 192.168.6.233:8080 返回 404。
这就是你页面报错的直接原因(后面的 reading 'data' 是前端未判空的连带错误)
这是 前端网关/代理路径不匹配 或 后端版本接口变更:前端代码还在调 /api/server/system/info
你当前后端(WVP-Pro)不提供这个路径(或被代理到错误目标)
解决办法
-
先看 nginx 容器名
sudo docker ps --format 'table {{.Names}}\t{{.Ports}}' | grep -i nginx
你前面是 docker-polaris-nginx-1,下面按这个名写。
-
在容器里查
location /apisudo docker exec -it docker-polaris-nginx-1 sh -c "grep -RIn 'location /api' /etc/nginx /usr/local/nginx/conf /etc/nginx/conf.d 2>/dev/null"
-
把命中的配置文件完整打印出来
假设命中 /etc/nginx/conf.d/default.conf,执行:
sudo docker exec -it docker-polaris-nginx-1 sh -c "sed -n '1,260p' /etc/nginx/conf.d/default.conf"
(把路径换成你第2步查到的实际文件)
-
同时看 Nginx 实际生效配置
sudo docker exec -it docker-polaris-nginx-1 nginx -T 2>/dev/null | grep -n 'location /api'
打印输出:
/etc/nginx /usr/local/nginx/conf /etc/nginx/conf.d 2>/dev/null"
这说明 nginx 配置里没有 location /api,所以你访问
http://192.168.6.233:8080/api/server/system/info 会直接落到静态站点,返回 404
查找主配置文件
sudo docker exec -it docker-polaris-nginx-1 sh -c "nginx -T 2>/dev/null | head -120"
输出打印:
wudaqing@admin:/mnt/shared/wvp-GB28181-pro/docker$ sudo docker exec -it docker-polaris-nginx-1 sh -c "nginx -T 2>/dev/null | head -120"
# configuration file /etc/nginx/nginx.conf:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
# configuration file /etc/nginx/mime.types:
types {
text/html html htm shtml;
text/css css;
text/xml xml;
image/gif gif;
image/jpeg jpeg jpg;
application/javascript js;
application/atom+xml atom;
application/rss+xml rss;
text/mathml mml;
text/plain txt;
text/vnd.sun.j2me.app-descriptor jad;
text/vnd.wap.wml wml;
text/x-component htc;
image/avif avif;
image/png png;
image/svg+xml svg svgz;
image/tiff tif tiff;
image/vnd.wap.wbmp wbmp;
image/webp webp;
image/x-icon ico;
image/x-jng jng;
image/x-ms-bmp bmp;
font/woff woff;
font/woff2 woff2;
application/java-archive jar war ear;
application/json json;
application/mac-binhex40 hqx;
application/msword doc;
application/pdf pdf;
application/postscript ps eps ai;
application/rtf rtf;
application/vnd.apple.mpegurl m3u8;
application/vnd.google-earth.kml+xml kml;
application/vnd.google-earth.kmz kmz;
application/vnd.ms-excel xls;
application/vnd.ms-fontobject eot;
application/vnd.ms-powerpoint ppt;
application/vnd.oasis.opendocument.graphics odg;
application/vnd.oasis.opendocument.presentation odp;
application/vnd.oasis.opendocument.spreadsheet ods;
application/vnd.oasis.opendocument.text odt;
application/vnd.openxmlformats-officedocument.presentationml.presentation
pptx;
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
xlsx;
application/vnd.openxmlformats-officedocument.wordprocessingml.document
docx;
application/vnd.wap.wmlc wmlc;
application/wasm wasm;
application/x-7z-compressed 7z;
application/x-cocoa cco;
application/x-java-archive-diff jardiff;
application/x-java-jnlp-file jnlp;
application/x-makeself run;
application/x-perl pl pm;
application/x-pilot prc pdb;
application/x-rar-compressed rar;
application/x-redhat-package-manager rpm;
application/x-sea sea;
application/x-shockwave-flash swf;
application/x-stuffit sit;
application/x-tcl tcl tk;
application/x-x509-ca-cert der pem crt;
application/x-xpinstall xpi;
application/xhtml+xml xhtml;
application/xspf+xml xspf;
application/zip zip;
application/octet-stream bin exe dll;
application/octet-stream deb;
application/octet-stream dmg;
application/octet-stream iso img;
application/octet-stream msi msp msm;
audio/midi mid midi kar;
audio/mpeg mp3;
audio/ogg ogg;
audio/x-m4a m4a;
audio/x-realaudio ra;
wudaqing@admin:/mnt/shared/wvp-GB28181-pro/docker$
这里只看到 nginx.conf 头部,还没看到真正的 server 配置(在 /etc/nginx/conf.d/*.conf)。
下一步直接把它打印出来并加 /api 代理。
sudo docker exec -it docker-polaris-nginx-1 sh -c "ls -l /etc/nginx/conf.d && sed -n '1,260p' /etc/nginx/conf.d/default.conf"
面命令会给 default.conf 先备份,再在 server内插入 location /api/ 块。
sudo docker exec -i docker-polaris-nginx-1 sh <<'SH'
set -e
cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
awk '
BEGIN{inserted=0}
/^[ \t]*server[ \t]*\{/ && inserted==0 {
print
print " location /api/ {"
print " proxy_pass http://docker-polaris-wvp-1:8080;"
print " proxy_http_version 1.1;"
print " proxy_set_header Host $host;"
print " proxy_set_header X-Real-IP $remote_addr;"
print " proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;"
print " proxy_set_header X-Forwarded-Proto $scheme;"
print " }"
inserted=1
next
}
{print}
' /etc/nginx/conf.d/default.conf.bak > /etc/nginx/conf.d/default.conf
nginx -t
nginx -s reload
SH
curl -i "http://192.168.6.233:8080/api/server/system/info"
输出结果还是返回404 NOT FOUND
请求没有命中你刚改的这个 server 块(或被另一个 server 覆盖了)。
因为如果命中了 /api 代理但后端不存在,通常会是后端 JSON 404;如果 upstream 不通是 502,不会是 nginx 静态 404 页。当前目录里还有一个 /etc/nginx/conf.d/nginx.conf,很可能就是它在接管 8080。
先确认实际生效的 server 顺序
sudo docker exec -it docker-polaris-nginx-1 sh -c "nginx -T 2>/dev/null | sed -n '/server {/,/}/p' | head -220"
再直接看另一个文件:
sudo docker exec -it docker-polaris-nginx-1 sh -c "sed -n '1,260p' /etc/nginx/conf.d/nginx.conf"
最后再测试:
sudo docker exec -it docker-polaris-nginx-1 sh -c "nginx -t && nginx -s reload"
把 /etc/nginx/conf.d/nginx.conf 内容贴出来
wudaqing@admin:/mnt/shared/wvp-GB28181-pro/docker$ sudo docker exec -it docker-polaris-nginx-1 sh -c "nginx -T 2>/dev/null | sed -n '/server {/,/}/p' | head -220"
server {
listen 80;
listen [::]:80;
server_name localhost;
location /api/ {
proxy_pass http://docker-polaris-wvp-1:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
server {
listen 8080;
server_name localhost;
location / {
root /opt/dist;
index index.html index.htm;
}
wudaqing@admin:/mnt/shared/wvp-GB28181-pro/docker$
可以看出:外部访问的是 192.168.6.233:8080,而加代理的是 listen 80 的 server。
真正对外生效的是 listen 8080 这段(root /opt/dist 那个),所以 /api 必须加在 8080 server 里。
先看完整文件
sudo docker exec -it docker-polaris-nginx-1 sh -c "sed -n '1,260p' /etc/nginx/conf.d/nginx.conf"
把 /etc/nginx/conf.d/nginx.conf 改成下面可用版(保留 8080 站点,并加 /api 反代):
sudo docker exec -i docker-polaris-nginx-1 sh <<'SH'
cat > /etc/nginx/conf.d/nginx.conf <<'EOF'
server {
listen 8080 default_server;
server_name _;
location /api/ {
proxy_pass http://172.18.0.5:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location / {
root /opt/dist;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}
EOF
nginx -t && nginx -s reload
SH
验证:
curl -i "http://192.168.6.233:8080/api/server/system/info"
输出:
wudaqing@admin:/mnt/shared/wvp-GB28181-pro/docker$ sudo docker exec -it docker-polaris-nginx-1 sh -c "sed -n '1,260p' /etc/nginx/conf.d/nginx.conf"
server {
listen 8080;
server_name localhost;
location / {
root /opt/dist;
index index.html index.htm;
}
location /record_proxy/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://polaris-wvp:18978/;
}
location /api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://polaris-wvp:18978;
# 从环境变量获取原始主机地址(x.x.x.x)
set $original_host 127.0.0.1;
# 执行字符串替换
# 将媒体资源文件替换为Nginx输出的相对地址
sub_filter "http://$original_host/index/api/downloadFile" "mediaserver/api/downloadFile";
sub_filter "http://$original_host:80/index/api/downloadFile" "mediaserver/api/downloadFile";
sub_filter "https://$original_host/index/api/downloadFile" "mediaserver/api/downloadFile";
sub_filter "https://$original_host:443/index/api/downloadFile" "mediaserver/api/downloadFile";
sub_filter "http://$original_host/mp4_record" "mp4_record";
sub_filter "http://$original_host:80/mp4_record" "mp4_record";
sub_filter "https://$original_host/mp4_record" "mp4_record";
sub_filter "https://$original_host:443/mp4_record" "mp4_record";
# 设置为off表示替换所有匹配项,而不仅仅是第一个
sub_filter_once off;
# 确保响应被正确处理
sub_filter_types application/json; # 只对JSON响应进行处理
}
# 将mediaserver/record转发到目标地址
location /mediaserver/api/downloadFile {
# 目标服务器地址
proxy_pass http://polaris-media:80/index/api/downloadFile;
# 以下是常用的反向代理设置
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 超时设置,根据需要调整
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
}
# 仅允许代理/rtp/开头的路径
location ^~ /rtp/ {
# 代理到ZLMediakit服务
proxy_pass http://polaris-media:80;
# 基础HTTP代理配置
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket支持配置
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 超时设置,根据实际需求调整
proxy_connect_timeout 60s;
proxy_read_timeout 3600s;
proxy_send_timeout 60s;
}
# 仅允许代理/rtp/开头的路径
location ^~ /mp4_record/ {
# 代理到ZLMediakit服务
proxy_pass http://polaris-media:80;
# 基础HTTP代理配置
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket支持配置
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 超时设置,根据实际需求调整
proxy_connect_timeout 60s;
proxy_read_timeout 3600s;
proxy_send_timeout 60s;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
wudaqing@admin:/mnt/shared/wvp-GB28181-pro/docker$ sudo docker exec -i docker-polaris-nginx-1 sh <<'SH'
nginx/conf.d/nginx.conf <<'EOF'
> cat > /etc/nginx/conf.d/nginx.conf <<'EOF'
> server {
> listen 8080 default_server;
> server_name _;
>
> location /api/ {
> proxy_pass http://172.18.0.5:8080;
> proxy_http_version 1.1;
> proxy_set_header Host $host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header X-Forwarded-Proto $scheme;
> }
>
> location / {
> root /opt/dist;
> index index.html index.htm;
> try_files $uri $uri/ /index.html;
> }
> }
> EOF
&& nginx -s relo>
> nginx -t && nginx -s reload
> SH
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
wudaqing@admin:/mnt/shared/wvp-GB28181-pro/docker$ curl -i "http://192.168.6.233:8080/api/server/system/info"
HTTP/1.1 401
Server: nginx/1.29.8
Date: Sat, 25 Apr 2026 08:53:04 GMT
Content-Type: application/json;charset=UTF-8
Content-Length: 45
Connection: keep-alive
Set-Cookie: JSESSIONID=7C48D39B64CD00987F7E204F2730B0DB; Path=/; HttpOnly
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
{"code":401,"msg":"请登录后重新请求"}wudaqing@admin:/mnt/shared/wvp-GB28181-pro/docker$
这个结果说明代理已经修好了:
之前:nginx HTML 404 Not Found
现在:后端 JSON 401 请登录后重新请求
这正是预期变化,表示 /api/* 已经正确转发到 WVP 后端。
你现在的状态,前端报错里的 404 根因已消除,剩下是鉴权:页面需要先登录,或接口调用时带上会话/token
===========================================
接下来对比前后端路径
直连后端(容器内IP)
curl -i "http://172.18.0.5:8080/api/user/login?username=admin&password=e10adc3949ba59abbe56e057f20f883e"
走前端nginx代理
curl -i "http://127.0.0.1:8080/api/user/login?username=admin&password=e10adc3949ba59abbe56e057f20f883e"
输出为:
wudaqing@admin:/mnt/shared/wvp-GB28181-pro/docker$ curl -i "http://172.18.0.5:8080/api/user/login?username=admin&password=e10adc3949ba59abbe56e057f20f883e"
HTTP/1.1 200
Set-Cookie: JSESSIONID=2113709E979DDACE66E1FB2EBC5D92CC; Path=/; HttpOnly
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
access-token: eyJhbGciOiJSUzI1NiIsImtpZCI6IjNlNzk2NDZjNGRiYzQwODM4M2E5ZWVkMDlmMmI4NWFlIn0.eyJqdGkiOiJRZ0pXUUJRZURzLXZCLUJrYmc3WTFBIiwiaWF0IjoxNzc3MTA3Njc2LCJleHAiOjE3NzcxMTEyNzYsIm5iZiI6MTc3NzEwNzY3Niwic3ViIjoibG9naW4iLCJhdWQiOiJBdWRpZW5jZSIsInVzZXJOYW1lIjoiYWRtaW4ifQ.0iJ6b_DNLXhgc9SUSkEnuRicHctc-g-vD9qFlBIS_0Bdyu3VZm93XT2E_Dmi_P4g4ov_C07AIQbxdvLAHQIyGcZDoyoYrktlE5cvNPGZe1WR_lgHUHHmC_j7M1QSypkClaJXV1WoqUz63Wuuxqf2gmuJg0XL5n2zFiiZaJlY3j4f2qPEW1sDoZarUnBmO0fTIiTgJS6D3KhyEG6m-3yo_N3OaKsr2CRBrHNBaP8urUTiMCDUKcUpPZo3CBGITiRElnLABBLdALw0nncNlF4wJ8LOltI1xt_4O2FOHsbmfmRZoAaVRvuWSsgFXDQDvIDIQGdAXYIv8qomM-HgI9bpPFraF0wwZPHrm2ibeZX5ERv_nt_lIJvoTBT0vRnV6UAaycRuDgU-E5xlYBnuXacVob2_Cp1kOCCyELJr4YAtWtkFknJv6lyl7SFRnUEKmz78U4EVzESfJerjn3F3m06ThgcJq9el1jWy14LwFtQkblTUm_j1pGTlHSJiyO-vHs0WTDQArMf5CMS-fu76rVYJPd_gVoLhVk14HvfbhtB2A_EyQ7y9g-lmaVbNwoQvYsZ7wifN4u861kno4hB17yegE5ZU7eUNC7aDZc_eVw7SvR4Uixy349VZv_TPgraUZ0ZssDFkt6RDbLFoeR_HQQOIS_X5k9zIC_jOc7P68LlEcoY
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Sat, 25 Apr 2026 09:01:16 GMT
{"code":0,"msg":"成功","data":{"accessToken":"eyJhbGciOiJSUzI1NiIsImtpZCI6IjNlNzk2NDZjNGRiYzQwODM4M2E5ZWVkMDlmMmI4NWFlIn0.eyJqdGkiOiJRZ0pXUUJRZURzLXZCLUJrYmc3WTFBIiwiaWF0IjoxNzc3MTA3Njc2LCJleHAiOjE3NzcxMTEyNzYsIm5iZiI6MTc3NzEwNzY3Niwic3ViIjoibG9naW4iLCJhdWQiOiJBdWRpZW5jZSIsInVzZXJOYW1lIjoiYWRtaW4ifQ.0iJ6b_DNLXhgc9SUSkEnuRicHctc-g-vD9qFlBIS_0Bdyu3VZm93XT2E_Dmi_P4g4ov_C07AIQbxdvLAHQIyGcZDoyoYrktlE5cvNPGZe1WR_lgHUHHmC_j7M1QSypkClaJXV1WoqUz63Wuuxqf2gmuJg0XL5n2zFiiZaJlY3j4f2qPEW1sDoZarUnBmO0fTIiTgJS6D3KhyEG6m-3yo_N3OaKsr2CRBrHNBaP8urUTiMCDUKcUpPZo3CBGITiRElnLABBLdALw0nncNlF4wJ8LOltI1xt_4O2FOHsbmfmRZoAaVRvuWSsgFXDQDvIDIQGdAXYIv8qomM-HgI9bpPFraF0wwZPHrm2ibeZX5ERv_nt_lIJvoTBT0vRnV6UAaycRuDgU-E5xlYBnuXacVob2_Cp1kOCCyELJr4YAtWtkFknJv6lyl7SFRnUEKmz78U4EVzESfJerjn3F3m06ThgcJq9el1jWy14LwFtQkblTUm_j1pGTlHSJiyO-vHs0WTDQArMf5CMS-fu76rVYJPd_gVoLhVk14HvfbhtB2A_EyQ7y9g-lmaVbNwoQvYsZ7wifN4u861kno4hB17yegE5ZU7eUNC7aDZc_eVw7SvR4Uixy349VZv_TPgraUZ0ZssDFkt6RDbLFoeR_HQQOIS_X5k9zIC_jOc7P68LlEcoY","serverId":"000000","enabled":true,"id":1,"password":null,"role":{"id":1,"name":"admin","authority":"0","createTime":"2021-04-13 14:14:57","updateTime":"2021-04-13 14:14:57"},"username":"admin","pushKey":"3e80d1762a324d5b0ff636e0bd16f1e3","authorities":null,"accountNonExpired":true,"accountNonLocked":true,"credentialsNonExpired":true}}wudaqing@admin:/mnt/shared/wvp-GB28181-pro/docker$ curl -i "http://127.0.0.1:8080/api/user/login?username=admin&password=e10adc3949ba59abbe56e057f20f883e"
HTTP/1.1 404 Not Found
Server: nginx/1.29.8
Date: Sat, 25 Apr 2026 09:01:23 GMT
Content-Type: text/html
Content-Length: 153
Connection: keep-alive
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.29.8</center>
</body>
</html>
wudaqing@admin:/mnt/shared/wvp-GB28181-pro/docker$
这组对比已经把问题钉死了:
172.18.0.5:8080 直连后端 200
127.0.0.1:8080 走 nginx 404
不是账号问题,是 nginx 上 8080 的生效 server 块没有命中 /api 代理(或命中了另一个 8080 server)。
确认哪个 server 在处理 8080
sudo docker exec -it docker-polaris-nginx-1 sh -c "nginx -T 2>/dev/null | grep -nE 'server \\{|listen 8080|server_name|location /api/'"
输出证实又两个server
wudaqing@admin:/mnt/shared/wvp-GB28181-pro/docker$ sudo docker exec -it docker-polaris-nginx-1 sh -c "nginx -T 2>/dev/null | grep -nE 'server \\{|listen 8080|server_name|location /api/'"
137:server {
140: server_name localhost;
184:server {
185: listen 8080;
186: server_name localhost;
直接修复(最短路径),把 8080 的配置文件改成唯一默认 server,并明确包含 /api/ 代理;同时把另一个 conf 先挪走避免冲突。
sudo docker exec -i docker-polaris-nginx-1 sh <<'SH'
set -e
# 备份
cp /etc/nginx/conf.d/nginx.conf /etc/nginx/conf.d/nginx.conf.bak.$(date +%s) 2>/dev/null || true
cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak.$(date +%s) 2>/dev/null || true
# 禁用 default.conf,避免额外 server 抢流量
[ -f /etc/nginx/conf.d/default.conf ] && mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.disabled || true
# 写入唯一 8080 server
cat > /etc/nginx/conf.d/nginx.conf <<'EOF'
server {
listen 8080 default_server;
server_name _;
location /api/ {
proxy_pass http://172.18.0.5:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location / {
root /opt/dist;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}
EOF
nginx -t
nginx -s reload
SH
验证后:
curl -i "http://127.0.0.1:8080/api/user/login?username=admin&password=e10adc3949ba59abbe56e057f20f883e"
网页可以登录,不再报错
