云服务器 nginx部署若依 请求后端接口404
后来请教了一个好心网友,帮我解决了,将上面的localhost 替换成我的服务器公网ip,这个若依的模板localhost只适合在本机部署访问。正确的方式是,将服务器名称设置为与您使用的域名相匹配的值。如果只使用localhost作为server_name,那么nginx将仅能识别通过本机IP访问的请求,无法处理通过域名访问的情况。我的理解:虽然填localhost时我们能访问到前端,但此时我们非
在第一次部署ruoyi vue 到阿里服务器时。照搬了文档的ng配置
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
charset utf-8;
location / {
root /home/ruoyi/projects/ruoyi-ui;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /prod-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://localhost:8080/;
}
# springdoc proxy
location ~ ^/v3/api-docs/(.*) {
proxy_pass http://localhost:8080/v3/api-docs/$1;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
上图server_name 用了localhost。虽然浏览器通过ip能访问到前端。但是前端里头的请求后端全部都是404,可是这时的后端服务器是正常的。后来请教了一个好心网友,帮我解决了,将上面的localhost 替换成我的服务器公网ip,这个若依的模板localhost只适合在本机部署访问。后来我去搜了下这个问题:有网友提到如下:
nginx的server_name配置是关键。这个配置项告诉nginx如何识别请求的域名并将其转发至相应的后端服务器。当nginx收到一个HTTP请求时,它会检查请求头中的Host字段,然后与server_name配置进行匹配。如果匹配成功,nginx就会将该请求转发至相应的后端服务器。
然而,设置server_name时存在一些需要注意的点。如果只使用localhost作为server_name,那么nginx将仅能识别通过本机IP访问的请求,无法处理通过域名访问的情况。因此,对于使用域名访问的需求,我们需要正确设置server_name。
正确的方式是,将服务器名称设置为与您使用的域名相匹配的值。例如,如果您使用的是example.com作为域名,那么server_name配置应设置为“example.com”。这将确保nginx能够识别通过example.com访问请求,并将其正确转发至相应的后端服务器。
---接上我:补充一下,填公网ip也是可以的,虽然比较low,没域名就先这么试试学习了。
我的理解:虽然填localhost时我们能访问到前端,但此时我们非本机访问前端是用ip,这时侯host中的ip与填的localhost是不匹配的所以导致没法转到相应后端
更多推荐
所有评论(0)