nginx配置静态文件和服务代理


需要把前后端分离的项目部署到服务器,前端静态资源通过nginx代理访问,接口请求代理到指定端口的服务上,先看配置:

server {
    listen       4040;
    server_name  127.0.0.1;
    
    location / {
       root   /opt/demo/static;
       index  index.html index.htm;
    }
    
    location /api {
      proxy_pass   http://127.0.0.1:4041/;
    }
}

nginx代理端口4040, 后台服务端口4041. 这个要注意了,nginx监听的端口不能与服务端口相同

/根目录 --被代理到--> /opt/demo/static路径下

那么在static下的静态资源就可以直接被访问了,形式: http://127.0.0.1:4040/index.html

下面重点来了!!!

所有以api开头的请求--被代理到-->4041端口

也就是说 http://127.0.0.1:4040/api/test 会访问到后台服务.这里面有个关键点

http://127.0.0.1:4041/http://127.0.0.1:4041 是有区别的!!!

假如请求是: http://127.0.0.1:4040/api/test

  • 加/ --被代理到--> http://127.0.0.1:4041/test
  • 不加/ --被代理到--> http://127.0.0.1:4041/api/test

也就是说,加了/会被代理到指定的路径,不加/会被代理到指定路径+api的路径下!!!

你品,细细的品!


记录下线上nginx配置:

location /api {
  proxy_pass   http://127.0.0.1:4041/;
  proxy_redirect off;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
  proxy_max_temp_file_size 0;
  proxy_connect_timeout 300s;
  proxy_send_timeout 300s;
  proxy_read_timeout 300s;
  proxy_buffer_size 4k;
  proxy_buffers  4 32k;
  proxy_busy_buffers_size 64k;
  proxy_temp_file_write_size 64k;
  index  index.html index.htm;
  client_body_buffer_size 128k;
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM