码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Nginx在前后端分离项目中的配置


    前言

    目前基于springboot的web项目所采用的开发模式都是前后端分离的,那么前后端分离的好处带来什么好处呢?
    分离后,前端和后端分工程开发,代码不再揉在一个工程中,对于大型项目开发来说更轻量化,管理更方便,开发过程中前端开发人员不再和后端开发人员强依赖。
    但前后端分离后也引出新的问题:前后端项目分别部署,不再是同一个wen项目端口,请求服务时浏览器会因为跨域而拦截请求。
    为了解决这个问题,我们可以使用Nginx。

    Windows安装Nginx

    nginx是免安装的,解压即可用。下载地址:Nginx

    1. 下载后进入Nginx解压目录,执行start nginx或者双击nginx.exe启动Nginx服务,默认80端口,即可访问http://localhost:80。
    2. 如果端口被占用,需要先查看被什么进程所占用。cmd执行指令:
    netstat -aon | find "80";
    
    • 1

    执行后可以看到占用端口的进程PID,根据PID查询进程信息:

    tasklist | find "XXX";
    
    • 1
    1. 执行nginx -s stop关闭Nginx服务。

    前后端分离配置

    同一个Nginx服务可以配置多个代理转发关系,每增加一个转发关系,只需在/usr/local/nginx/conf/nginx.conf增加一个server模块。配置示例如下:

    server {
    listen       80;
            #多个域名用空格隔开
            server_name  #域名示例:baidu.com;
     		location / {
    				proxy_set_header Host $host;
                    root /web/front; #根目录
                    index /index.html; #设置默认页
            }
    
    	    location /api/ {
    	        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;
    	        add_header Access-Control-Allow-Methods *;
    	        add_header Access-Control-Allow-Origin $http_origin;
    	        proxy_pass http://127.0.0.1:8010; #请求转向定义的服务器
    	    }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    修改配置后执行nginx -s reload配置即可实时生效。
    下面对上述配置文件中$host、$http_host的作用对比一下。

    变量是否显示端口值
    $host–不显示端口––浏览器请求的ip,不显示端口–
    $http_host– 端口存在则显示–– 浏览器请求的ip和端口号–
    $proxy_host– 默认80端口不显示,其它显示––被代理服务的ip和端口号–
  • 相关阅读:
    【Python】解决CNN中训练权重参数不匹配size mismatch for fc.weight,size mismatch for fc.bias
    关于刷题时使用数组的小注意事项
    在React项目中引入字体文件并使用
    秒杀场景的业务和技术难点分析
    JavaSE——集合框架二(6/6)-(案例)补充知识:集合的嵌套(需求与分析、问题解决、运行测试)
    pytorch打印模型信息——torchinfo
    微宏科技基于 KubeSphere 的微服务架构实践
    类似于推箱子的小游戏 寻找 最短路径
    8b10b 64b/66b/ 究竟是什么作用呢?
    【LeetCode】18、四数之和
  • 原文地址:https://blog.csdn.net/u800820/article/details/126213969
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号