Nginx配置前后端分离项目在同一IP端口或域名下

这篇具有很好参考价值的文章主要介绍了Nginx配置前后端分离项目在同一IP端口或域名下。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前后端分离的架构已经被广泛采用。这种模式下,前端和后端会分别运行在不同的服务器或端口上。然而,有时我们需要把前后端部署在同一端口或同一域名下,这就需要利用到反向代理服务器,例如Nginx。

在本文中,我将向大家展示如何利用Nginx将前后端分离的项目配置在同一端口或域名下。我将提供两个示例,分别是使用HTTP和HTTPS的配置,以帮助你理解和实践。

使用HTTP的配置

首先,我们来看一个HTTP的配置例子:

server {
    listen 80;  # 该server block会监听80端口,处理所有发送到此端口的请求
    server_name yourdomain.com;  # 你的域名或IP

    location / {
        root /path/to/your/frontend/files;  # 指定前端静态文件的存放路径
        try_files $uri $uri/ /index.html;  # 如果找不到请求的文件,则返回index.html
    }

    location /api/ {  # 以/api/开头的路径将被转发到后端服务器
        proxy_pass http://localhost:8080;  # 后端服务器地址和端口
        proxy_set_header Host $host;  # 以下三行用于将客户端的一些信息转发到后端服务器
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    access_log  /var/log/nginx/yourdomain.access.log;  # 访问日志文件的路径,记录所有的访问请求
    error_log  /var/log/nginx/yourdomain.error.log;  # 错误日志文件的路径,记录服务器处理请求时的错误信息
}

这个配置文件实现的功能是:当用户访问yourdomain.com时,如果URL以/api/开头,那么请求会被转发到后端服务器(http://localhost:8080)处理;否则,Nginx会在前端静态文件的目录(/path/to/your/frontend/files)下寻找对应的文件并返回给用户。所有的访问请求和错误信息都会被记录到指定的日志文件中。

使用HTTPS的配置

接下来我们来看一个HTTPS的配置例子,同时也包含了HTTP到HTTPS的自动重定向:

server {
    listen 80;
    server_name yourdomain.com;
    # 对于所有HTTP请求,我们将它们重定向到HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;  # 监听443端口,启用SSL和HTTP/2
    server_name yourdomain.com;  # 你的域名或IP

    ssl_certificate /path/to/your/fullchain.pem;  # SSL证书的路径


    ssl_certificate_key /path/to/your/privkey.pem;  # SSL证书私钥的路径

    # 启用TLS 1.2和1.3
    ssl_protocols TLSv1.2 TLSv1.3;
    # 启用安全的密码套件
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

    location / {
        root /path/to/your/frontend/files;  # 指定前端静态文件的存放路径
        try_files $uri $uri/ /index.html;  # 如果找不到请求的文件,则返回index.html
    }

    location /api/ {  # 以/api/开头的路径将被转发到后端服务器
        proxy_pass https://localhost:8443;  # 后端服务器地址和端口
        proxy_set_header Host $host;  # 以下三行用于将客户端的一些信息转发到后端服务器
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    access_log  /var/log/nginx/yourdomain.access.log;  # 访问日志文件路径
    error_log  /var/log/nginx/yourdomain.error.log;  # 错误日志文件路径
}

这个配置文件与HTTP版本的最大不同在于,它添加了对HTTPS的支持,并设置了自动将HTTP请求重定向到HTTPS。此外,由于后端服务器也运行在HTTPS上,所以proxy_pass指令的参数也变成了https://localhost:8443。

请注意,要使用HTTPS,你需要拥有一份SSL证书以及对应的私钥,并在配置文件中指定它们的路径。

到这里,你应该已经学会了如何使用Nginx将前后端分离的项目配置在同一端口或同一域名下,无论是HTTP还是HTTPS。希望这篇文章能够帮助你更好地理解和使用Nginx。如果你有任何问题或者需要进一步的帮助,欢迎在下面留言。文章来源地址https://www.toymoban.com/news/detail-608471.html

到了这里,关于Nginx配置前后端分离项目在同一IP端口或域名下的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Tomcat与Nginx多项目部署,同一个ip不同端口部署,完整教程

    Tomcat与Nginx多项目部署,同一个ip不同端口部署,完整教程

    多项目,同IP,不同端口部署访问。 部署一个PC项目,访问地址:http://192.168.31.1:8085/项目名称 部署一个dist项目,访问地址:http://192.168.31.1:8086/项目名称 注:以上只是举例! 之前没有这样的经验,也没有查到整合的资料,所以整合记录一下~ 不推荐低版本或最新版本,最新版

    2024年02月03日
    浏览(39)
  • 【若依】前后端分离部署前端配置二级域名(部署到Nginx上,打开后一直显示正在加载系统资源)

    【若依】前后端分离部署前端配置二级域名(部署到Nginx上,打开后一直显示正在加载系统资源)

    问题描述 最初部署前端文件到nginx上之后,打开页面却一直显示“正在加载系统资源,请耐心等待”字样,无法正常运行。研究后发现问题是由于服务器使用Nginx转发域名请求,无法使用根目录,所以对前端进行二级域名配置,修改代码如下: vue.config.js 其实若依给的注释里

    2024年02月03日
    浏览(12)
  • nginx前后端不分离项目代理配置

            现在很多时候都是前后端分离的项目,所以配置代理的时候,前端和后端的代理分开配置,各访问各的,互不干扰。         但是在前后端不分离的项目中,nginx代理有些不同,特此在这记录一下。         前后端不分离的项目,访问页面是通过 请求转发

    2024年01月17日
    浏览(9)
  • nginx网站服务(下载,配置,命令,实现访问状态统计,访问控制,域名 IP端口访问,身份验证)

    nginx网站服务(下载,配置,命令,实现访问状态统计,访问控制,域名 IP端口访问,身份验证)

    目录 概念 Nginx的优势和特点: 下载配置nginx(两种方式编译和yum) 编译安装,安装依赖  创建运行用户、组 解压nginx压缩包 配置Nginx  编译安装 修改权限 让系统识别nginx的操作命令 配置 nginx命令 nginx的配置文件 全局配置 模块 location的配置 1. root 指令: 2. alias 指令: 实现

    2024年02月19日
    浏览(11)
  • nginx反向代理实现不同域名映射到同一台服务器的相同端口

    在实际应用中,我们经常会遇到多个域名需要映射到同一台服务器的相同端口的情况,这时可以使用nginx反向代理来实现。 以实现将www.example.com和www.test.com都映射到127.0.0.1的80端口为例,具体步骤如下: 修改hosts文件 在本地hosts文件中添加以下两行: 配置nginx反向代理 在ngi

    2024年02月14日
    浏览(11)
  • 如何通过nginx反向代理实现不同域名映射到同一台服务器的相同端口

    要在Nginx中实现不同域名映射到同一台服务器的相同端口,您可以使用Nginx的代理转发技术。 首先,您需要了解Nginx的代理转发工作原理。Nginx的代理转发是指在代理服务器(proxy server)收到一个请求时,先将请求转发给目标服务器(target server),然后将服务器的响应返回给代

    2024年02月13日
    浏览(12)
  • SpringBoot+Vue前后端分离项目+云服务器(nginx配置http/https)

    SpringBoot+Vue前后端分离项目+云服务器(nginx配置http/https)

    目录 1.Java项目打包 2.前端项目打包 ok,项目准备好了,接下来就是服务器方面的操作了 3.服务器 1.点击控制台 2.找到 ECS云服务器 3.概览-我的资源  4.重置服务器密码  5.配置安全组 4.域名 1.买域名 2.备案  3.解析至服务器 31.控制台找到  3.2.域名列表 ,找到需要的域名,点击解析​

    2024年02月09日
    浏览(9)
  • java+vue 前后端项目部署 服务器部署流程 包括nginx软件安装,服务器选择,域名配置

    java+vue 前后端项目部署 服务器部署流程 包括nginx软件安装,服务器选择,域名配置

    现在的web端项目大多数都是java+vue前后端分离的项目,都需要分开来部署,基本上都是部署在云服务器上的,这就涉及到选择和购买服务器,以及安装环境,本文记录的是在机器上安装软件,不在docker和宝塔上安装。下面请看详细的步骤吧,都是自己在工作中使用过的,本人

    2024年02月13日
    浏览(10)
  • Nginx配置 多个域名指向同一个服务器文件

    Nginx配置 多个域名指向同一个服务器文件

    因为公司开发方面有响应的需求,需要多个域名指向同一个服务器下的文件(即访问的域名不同但访问的服务器下的文件是同一个) 已经过解析 并且指向同一个ip地址的多个域名 服务器nginx已配置好 如果有需求需要给域名配置ssl证书(https) 找到服务器的nginx.conf文件 一般情况

    2024年02月11日
    浏览(35)
  • Nginx 同一端口下部署多个 Vue3 项目

    前端多项目部署到 Nginx 的同一监听端口下的解决方案,项目由一个主项目和多个子项目组成,主项目和子项目都是单独打包。 主子项目之间是使用的腾讯开源的无界(WebComponent 容器 + iframe 沙箱)前端框架,能够完善的解决适配成本、样式隔离、运行性能、页面白屏、子应用

    2024年02月07日
    浏览(7)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包