最近有这个一个问题,只有一个域名但是需要部署前后端,前端很容易理解,做一个转发就可以了,但是后端总不能直接暴露ip吧,所以也需要利用nginx处理一下转发,那就合并在一起做了吧

server {
    # 80端口, 如果是https就是 443
    listen       80;
    # 配置的服务名称/域名
    server_name  xxx.com;
    charset utf-8;
    # 缓存的服务地址
    add_header X-Via $server_addr;
    # 缓存的状态 用于区分访问的资源是缓存的还是加载的
    add_header X-Cache $upstream_cache_status;
    # 如果 root 配置在location内的话可能会不生效
    root /www/dist
    location / {
        try_files $uri $uri/ /index.html;
        index index.html;
    }
    # 转发的后端 htpps://xxx.com/api/
    location /api/ {
        proxy_set_header X-Real-IP $remote_addr;
        # 缓存名称
        proxy_cache tmpcache;
        # 需要缓存的数据状态 需要缓存保留的时间
        proxy_cache_valid any 1h;
        # 代理地址
        proxy_pass http://127.0.0.1:8080;
    }
}

在这种情况下比如访问前端的地址是 http://xxx.com
那么后端的访问地址应该是 htpps://xxx.com/api/
追加了api做为请求的后缀,这个接口的地址命名需要注意最好不要出现在前端的路由中,否则会产生问题