实现前后端分离,可以让前后端独立开发、独立部署、独立单测,双方通过JSON进行数据交互。
对于前端开发人员来说,不用每次调试都需要启动或配置Java/Tomcat运行环境;对于后端开发人员来说 ,也不用在需要往页面注入数据。
一:部署前端资源
前端资源部署在nginx的html文件中;
二:配置前端资源访问路径和默认访问路径
root 是指定项目的根目录,适用与server和location。可以指定多个,如果locaiton没有指定,会往其外层的server或http中寻找继承。
index 是指定网站初始页。该指令后面可以跟多个文件,用空格隔开;如果包括多个文件,Nginx会根据文件的枚举顺序来检查,直到查找的文件存在;文件可以是相对路径也可以是绝对路径,绝对路径需要放在最后;文件可以使用变量$
来命。
try_files 最核心的功能是可以替代rewrite;按顺序检查文件是否存在,返回第一个找到的文件。结尾的斜线表示为文件夹 -$uri/。如果所有的文件都找不到,会进行一个内部重定向到最后一个参数。
rewrite 是实现URL重定向的重要指令,他根据regex(正则表达式)来匹配内容跳转到replacement,结尾是flag标记。
location / {
root html/dist;
index index.html;
}
或者
location / {
root html/dist;
try_files $uri $uri/ @rewrite;
}
location @rewrite{
rewrite ^.*$ /index.html last;
}
三:部署后端资源
后端资源部署在tomcat中;
四:配置后端资源访问路径
proxy_pass 配置的路径如果是以/结尾,如上面的配置v1,那么此时路径为相对路径,否则为绝对路径;
proxy_connect_timeout 该指令设置与upstream server的连接超时时间,有必要记住,这个超时不能超过75秒;
proxy_read_timeout 该指令设置与代理服务器的读超时时间。它决定了nginx会等待多长时间来获得请求的响应。这个时间不是获得整个response的时间,而是两次reading操作的时间。
proxy_send_timeout 说明 这个指定设置了发送请求给upstream服务器的超时时间。超时设置不是为了整个发送期间,而是在两次write操作期间。如果超时后,upstream没有收到新的数据,nginx会关闭连接;
client_max_body_size 设置nginx的client_max_body_size解决nginx+java上传大文件的问题;500m表示最大上传500M,需要多大设置多大;
proxy_set_header 用来重定义发往后端服务器的请求头;
location /manage {
proxy_pass http://127.0.0.1:8881;
proxy_connect_timeout 3;
proxy_send_timeout 30;
proxy_read_timeout 30;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 100m;
}
五:Nginx完整配置;