在linux
系统下部署springboot
项目时,由于原有的8080
端口被占用,此时使用nginx
进行端口的反向代理,将项目的访问端口代理为8081
,然后在项目启动时,启动语句添加上--server.port=8081
。此时,当我们访问该项目服务时,虽然输入的端口为http://127.0.0.1:8080/
,但实际访问的端口链接为http://127.0.0.1:8081/
,后台服务能够成功运行。但是,当我们访问服务页面时,问题出现了,很可能出现前端页面无法访问的问题。报错:net::err_connection_reset 200
出现前端页面找不到静态资源的问题,是由于我们对端口使用nginx
进行了反向代理,此时直接访问原来端口时,端口号已经被代理端口取代了,所以找不到原端口下的静态资源。
在nginx
配置文件中,执行下述修改:
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
# 后端代理服务器的地址
upstream xd-project{
server 127.0.0.1:8080;
}
server {
# 监听的端口
listen 8081;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log mai
# 代理转发'/'后的所有请求
location / {
proxy_pass http://xd-project;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
}
# 静态资源配置
location ~ .* {
proxy_pass http://xd-project;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
include servers/*;
}
注:
上述解决方法中,使用xd-project
将后端代理服务器的地址提取到server
配置外了,用参数的方式调用。
location /{}
:该方式配置的是/
下的所有请求接口
location ~ .*{}
:该方式配置了项目中的所有静态资源
这两个配置也是该文最重要的地方。