nginx如何搭建前后端分离架构

 更新时间:2025年01月22日 17:17:52   作者:赵忠洋  
本文介绍了如何使用Vue-cli搭建前端开发环境,并详细讲解了nginx、webpack-devserver和Postman的使用方法,此外,还介绍了API基本设计规范,包括HTTP状态码、数据格式和接口设计

本人用的是vue-cli 自动构建vue+webpack 项目,这里不对webpack、nginx进行讲解。

本文主要解决前端开发环境搭建、测试环境搭建、生产环境搭建以及接口调试

需要工具

  • 1.nginx(配置代理)
  • 2.webpack-devserver(启动前端服务)
  • 3.postman(接口调试)

nginx的环境搭建

nginx.conf 文件配置

开发环境

http{
    server {
	    #配置端口号
        listen 9999;
        #配置server_name
        server_name 127.0.0.1;
        #设置默认页面 地址为webpack-devserver地址
        location = / {
            proxy_pass http://127.0.0.1:8888/#/home;
        }
        #这里因为我的的vue-router 所以将带#号的请求转发到本地服务器
        location ~ .*#.*$ {
            proxy_pass http://127.0.0.1:8888;
        }
        #请求网页 图片 icon 等都会转发到本地服务器上
        location ~ .*\.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ico|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma|eot|woff|ttf|svg)$ {
            proxy_pass http://127.0.0.1:8888;
        }
        #请求后端接口的服务器地址
        location ~ .*$ {
            proxy_pass http://10.10.1.135:8080;
        }
    }
}

测试环境

http{
    server {
	    #配置端口号
        listen 9999;
        #配置server_name
        server_name 127.0.0.1;
        #设置默认页面 root 为静态文件目录
        location = / {
            index  index.html;
            root /html;
        }
        #请求网页 图片 icon 等都会转发到nginx静态目录下
        location ~ .*\.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ico|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma|eot|woff|ttf|svg)$ {
            root /html;
        }
        #请求后端接口的服务器地址
        location ~ .*$ {
            proxy_pass http://10.10.1.135:8080;
        }
    }
}

生产环境搭建

http{
    server {
	    #配置端口号
        listen 80;
        #配置server_name
        server_name www.xxx.com;
        #设置默认页面 root 为静态文件目录
        location = / {
            index  index.html;
            root /html;
        }
        #请求网页 图片 icon 等都会转发到nginx静态目录下
        location ~ .*\.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ico|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma|eot|woff|ttf|svg)$ {
	        proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            root /html;
        }
        #请求后端接口的服务器地址
        location ~ .*$ {
            proxy_pass http://api.xxx.com;
        }
    }
}

POSTman 接口调试

get方式

  • 1.get请求方式
  • 2.url请求地址
  • 3.发送请求

ps:get请求参数可以写在url里边 也可以写在 下方的key value 里

post方式

  • 1.post请求方式
  • 2.url请求地址
  • 3.发送请求
  • 4.选择参数类型
  • 5.将参数写入

ps:get请求参数可以写在url里边 

为什么使用postman

  • 1.前端请求后端接口时发生错误,postman测试接口是否正常,快速定位问题
  • 2.一些小公司没有api文档,或者文档不全,通过postman可以快速的判断接口传参类型 
  • ps:甩锅利器

api基本设计规范

接口说明

  • 数据格式全部使用json格式
  • post/put 使用UTF-8编码
  • 使用HTTP Status Code表示状态
  • 列表参数使用start和count

返回状态码说明

通过HTTP Status Code来说明 API 请求是否成功 下面的表格中展示了可能的HTTP Status Code以及其含义

状态码含义说明
200ok请求成功
201CREATED创建成功
202ACCEPTED更新成功
401UNAUTHORIZED未授权/未登录
403FORBIDDEN被禁止访问
404NOT FOUND请求资源不存在
500INTERNAL SERVER ERROR服务器内部错误

通用错误代码(具体使用要api文档中给出)

状态码含义说明
999unknow_v2_error未知错误
1000need_permission需要权限
1001uri_not_found资源不存在
1002missing_args参数不全
1003image_too_large上传的图片太大
1004input_too_short输入为空,或者输入字数不够
1005target_not_fount相关的对象不存在
1006need_captcha需要验证码,验证码有误
1007image_wrong_format照片格式有误(仅支持JPG,JPEG,GIF,PNG或BMP)

返回json数据格式

{
//描述
 "msg":"image_too_large,
//状态码
 "code":1003,
 //数据
 "data":[]
}

url地址解释

/v1/m/login

参数说明
v1版本号
m手机端
Login登录接口

版本说明

暂定大版本更替时更改

例如:

  • v1 版本1.x
  • v2 版本2.x

常规接口规范

列表及分页接口设计

#假定请求数据列表
/v1/m/list

请求参数

名称请求方式类型说明默认值是否必填
pageGET页码/第几页1
limitGET条数10
/v1/lawyer?page=1&limit=10

返回参数

名称类型说明
msgstring描述
codenum状态码
dataobject数据

data数据格式

名称类型说明
pageSizenum总页数
pagenum当前页
limitnum每页条数
countnum总条数
rowsjson数据列表
    #示例
    {
        msg:ok,
        code:200,
        data:{
          count:70,
          pageSize:7,
          limit:10,
          page:2,
          #此数据只是示例,展现数据格式
          rows:[
            {
                id:001,
                name:zzz
                phone:111111
            },{
                id:002,
                name:zzz
                phone:111111
            },{
                id:003,
                name:zzz
                phone:111111
            }
          ]
        }
    }

详情页接口设计

请求参数

名称请求方式类型说明默认值是否必填
idGETstring产品id
#假定产品详情
/v1/m/product/details?id=001

返回参数

名称类型说明
msgstring描述
codenum状态码
dataobject数据

data数据格式(并不是真实字段,仅能代表数据格式)

名称类型说明
idnum产品id
namestring产品姓名
phonenum电话
imgstring产品头像
    #示例
    {
        msg:ok,
        code:200,
        data:{
          id:001,
          name:zzz,
          phone:111111,
          img:"img src 路径"
        }
    }

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 利用nginx搭建静态资源服务器的方法步骤

    利用nginx搭建静态资源服务器的方法步骤

    这篇文章主要介绍了利用nginx搭建静态资源服务器的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • 浅析Nginx 负载均衡4种模式

    浅析Nginx 负载均衡4种模式

    这篇文章主要介绍了Nginx 负载均衡4种模式,本文给大家介绍的非常详细,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-06-06
  • 使用Nginx实现HTTPS双向验证的方法

    使用Nginx实现HTTPS双向验证的方法

    这篇文章主要介绍了使用Nginx实现HTTPS双向验证的方法,涉及到单向验证和双向验证的区别介绍,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-06-06
  • 通过Nginx配置实现外网访问内网数据库的操作指南

    通过Nginx配置实现外网访问内网数据库的操作指南

    项目开发部署中经常会遇到MySQL或Oracle数据库安装在内网,而我们的应用服务只能部署在外网,如果实现外网服务访问连接内网的数据库呢?本次介绍如何通过Nginx配置实现外网访问内网数据库,需要的朋友可以参考下
    2023-10-10
  • nginx中常见日志分析命令合集

    nginx中常见日志分析命令合集

    这篇文章主要为大家整理了一些nginx中常见日志分析命令,例如 查看实时日志,统计状态码分布,分析客户端 IP等,有需要的小伙伴可以参考一下
    2025-05-05
  • nginx中端口无权限的问题解决

    nginx中端口无权限的问题解决

    当 Nginx 日志报错 bind() to 80 failed (13: Permission denied) 时,这通常是由于权限不足导致 Nginx 无法绑定到 80 端口,下面就来介绍一下该问题的解决,具有一定的参考价值,感兴趣的可以了解一下
    2025-07-07
  • 详解Nginx进行TCP代理配置的详细指南

    详解Nginx进行TCP代理配置的详细指南

    Nginx 是一个高性能的 HTTP 和反向代理服务器,它也支持 TCP/UDP 的负载均衡,本文将介绍如何配置 Nginx 作为 TCP 代理,需要的可以了解下
    2025-07-07
  • 使用LDAP实现Nginx用户认证的示例

    使用LDAP实现Nginx用户认证的示例

    本文主要使用Nginx和LDAP实现用户认证,通过配置Nginx和安装nginx-auth-ldap模块,可以实现基于LDAP的认证逻辑,下面就来介绍一下,感兴趣的可以了解一下
    2024-12-12
  • Nginx中proxy_pass使用小结

    Nginx中proxy_pass使用小结

    本文详细介绍了Nginx中proxy_pass指令的基本用法、配置示例及高级用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • 使用Nginx反向代理到go-fastdfs的方法示例

    使用Nginx反向代理到go-fastdfs的方法示例

    这篇文章主要介绍了使用Nginx反向代理到go-fastdfs的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05

最新评论