nginx部署前端找不到静态资源,net::ERR_CONNECTION_REFUSED
时间: 2025-06-22 21:39:43 浏览: 1
### Nginx 部署前端应用找不到静态资源及 `net::ERR_CONNECTION_REFUSED` 错误解决方案
#### 一、Nginx 配置优化以支持更多并发连接
当遇到 `net::ERR_CONNECTION_REFUSED` 错误时,通常意味着客户端尝试建立到服务器的新 TCP 连接被拒绝。这可能是由于服务器端口已满或其他原因造成的。对于这种情况,可以考虑调整 Nginx 的工作进程数和每个工作进程的最大连接数:
```nginx
worker_processes auto;
events {
worker_connections 1024; # 根据实际需求适当增加此数值
}
```
上述配置能够有效提升 Nginx 处理高并发的能力[^1]。
#### 二、确保正确设置代理参数防止连接中断
为了预防因为不当的代理设置而导致的连接问题,在 Nginx 中应合理配置与后端通信的相关指令:
```nginx
location /api/ {
proxy_pass http://backend_server_address/;
# 下面这些选项有助于保持长连接并减少握手开销
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_read_timeout 300s;
# 设置合适的缓冲区大小来适应不同类型的响应数据流
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
}
```
通过以上措施可以在一定程度上缓解由网络不稳定引起的服务不可达现象。
#### 三、检查防火墙规则排除外部干扰因素
有时即使应用程序本身没有任何问题也可能受到操作系统层面的安全策略影响而无法正常接收来自外界的请求。因此建议核查当前主机上的防火墙状态,并确认目标端口号是否已被开放允许访问:
```bash
sudo ufw status verbose
sudo iptables -L -n -v
```
如果发现存在阻止入站流量的情况,则需针对性地添加相应例外规则以便让合法的数据包顺利抵达目的地。
#### 四、针对静态资源加载失败的具体对策
关于提到的 “第二次部署之后请求接口出现 `net::ERR_CONNECTION_REFUSED` 错误”,考虑到可能是因为 NGINX 缓存机制所致——即首次构建完成后所生成的内容会被临时存储于磁盘之上供后续重复调用;然而一旦发生更新操作则可能导致旧版本残留从而引发冲突。对此可采取如下手段加以规避:
- **清理缓存目录**:定期清空 `/var/lib/nginx/proxy_temp` 文件夹下的所有子项;
- **禁用不必要的缓存功能**:编辑站点对应的虚拟主机配置文件(`*.conf`)加入下面几行代码片段即可实现目的:
```nginx
location ~* \.(?:css|js)$ {
expires off;
add_header Cache-Control "no-store, no-cache";
}
# 或者更激进的方式完全关闭整个项目的静态资源缓存特性
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
...
add_header X-UA-Compatible "IE=Edge,chrome=1";
expires -1;
etag off;
if_modified_since before;
reset_timedout_connection on;
client_body_timeout 10;
send_timeout 2;
limit_conn_zone $binary_remote_addr zone=addr:10m;
```
最后重启 Nginx 生效更改后的设定[^2].
#### 五、排查 Tomcat 流量限制导致的问题
若 GET 请求返回的是 `net::ERR_CONNECTION_RESET 200` ,那么很可能是由于服务端设置了过低的流量上限触发了自动断连保护机制。此时应当重点审查负责承载业务逻辑的应用容器(Tomcat)内部是否存在类似的约束条件,并依照官方文档指导做出相应的放宽处理[^4]:
```xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxPostSize="-1"/>
<!-- 将maxPostSize设为负值表示不限制POST提交的数据长度 -->
```
另外也可以同步调整 Nginx 对上传文件尺寸方面的限定标准以达成一致效果:
```nginx
http {
...
client_max_body_size 100M; /* 修改为你期望的最大值 */
}
```
阅读全文
相关推荐







