nginx反向代理端口后配置静态资源(页面)

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 ~ .*{}:该方式配置了项目中的所有静态资源

这两个配置也是该文最重要的地方。

猜你喜欢

转载自blog.csdn.net/xiri_/article/details/125412284