nginx反向代理端口后配置静态资源(页面)
模拟场景:
? 在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 ~ .*{} :该方式配置了项目中的所有静态资源
这两个配置也是该文最重要的地方。
|