Nginx实现前后端分离

Nginx可以实现前后端分离,其大致过程如下:

  1. 安装 Nginx

在Linux系统上可以使用apt-get或yum包管理器进行安装,具体命令如下:

sudo apt-get update
sudo apt-get install nginx
  1. 创建一个前端目录和一个API目录

在服务器上创建一个前端目录(例如:/var/www/frontend)和一个API目录(例如:/var/www/api)。

前端目录存放的是前端静态文件。API目录是后端API的集合点。

  1. 添加示例前端代码和后端API代码

在前端目录下放一个示例index.html文件,同时在API目录下放一个示例的API代码文件

index.html内容如下:

<!DOCTYPE html>
<html>
<head>
    <title>Frontend</title>
</head>
<body>
    <h1>Welcome to the Frontend!</h1>
</body>
</html>

API代码文件如下:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Welcome to the API!'

if __name__ == '__main__':
    app.run()
  1. 配置 Nginx

要将请求响应到正确的部分,需要配置nginx。在 /etc/nginx/sites-available 目录下创建一个名为 myapp 的文件。

文件内容如下:

server {
    listen 80;
    server_name example.com;

    location /api {
        proxy_pass http://localhost:5000;
    }

    location / {
        root /var/www/frontend/;
        try_files $uri $uri/ /index.html;
    }
}

这个配置文件有两个主要的部分。

  • /api 部分用来代理到后端API。
  • / 部分用来提供静态前端文件并唯一路由除/api之外的所有请求。

  • 重启 Nginx

执行以下命令以使更改生效:

sudo service nginx restart

至此,Nginx实现前后端分离的过程就完成了。

附两个示例:

  1. 使用React框架中Nginx实现前后端分离

安装React框架:

npm install -g create-react-app
create-react-app my-app
cd my-app
npm start

执行建立一个本地开发的express后端,使用了cors,用于测试Nginx实现前后端分离:

npm install express cors
touch index.js

代码如下:

const express = require('express');
const cors = require('cors');
const app = express();
const port = process.env.PORT || 5000;

app.use(cors());
app.use(express.json());

app.get('/api', (_, res) => {
  res.json({ message: 'Hello API' });
});

app.listen(port, () => {
  console.log(`Server listening on port ${port}`);
});

在 Nginx 中添加配置文件:

server {
    listen 80;
    listen [::]:80;
    server_name example.com;

    location / {
      root /var/www/frontend;
      try_files $uri /index.html;
    }

    location /api {
      proxy_pass http://localhost:5000;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_set_header Host $host;
      proxy_cache_bypass $http_upgrade;
    }
}
  1. 使用Node.js中的Nginx实现前后端分离

安装Node.js:

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs

执行以下命令以建立本地服务器,使用了cors库,用于测试Nginx实现前后端分离:

npm init
npm install express cors --save
touch server.js

源代码如下:

const express = require('express');
const cors = require('cors');

const app = express();
const port = process.env.PORT || 5000;

app.use(cors());
app.use(express.json());

app.get('/api', (_, res) => {
  res.json({ message: 'Hello API' });
});

app.listen(port, () => {
  console.log(`Server listening on port ${port}`);
});

在 Nginx 中添加配置文件:

server {
    listen 80;
    listen [::]:80;
    server_name example.com;

    location / {
      root /var/www/frontend;
      try_files $uri /index.html;
    }

    location /api/ {
      proxy_pass http://localhost:5000/;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_set_header Host $host;
      proxy_cache_bypass $http_upgrade;
    }
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx实现前后端分离 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • nginx下修改svn配置

    最近公司的SVN服务器地址做了变更,而我用的操作系统是Ubuntu操作系统,我也不想把以前下载的代码重新进行修改,我想通过修改svn地址,应该可以,终于在网上通过查找资料,找到了解决的方法:     进行你所工作的svn映射到本地的目录中。在终端下运行$svn switch –relocate http://oldPath http://newpath。系…

    Nginx 2023年4月12日
    00
  • nginx搭建NFS服务器的方法步骤

    下面是详细讲解“nginx搭建NFS服务器的方法步骤”的完整攻略,其中还有两个示例说明。 什么是NFS服务器 NFS(Network File System)服务器是一种集中式的文件存储管理系统,可以将多台主机的硬盘空间组合在一起,形成一个大型的、集中式的网络文件系统。NFS服务器通常由一台或多台主机组成,可以将这些主机上的硬盘空间挂载到NFS服务器上,形成…

    Nginx 2023年5月16日
    00
  • Nginx日志统计分析的常用命令总结

    接下来我就来详细讲解一下“Nginx日志统计分析的常用命令总结”的完整攻略。 Nginx日志统计分析的常用命令总结 概述 在使用Nginx作为Web服务器时,日志记录是非常重要的。而对于这些日志进行统计分析,可以为后续的优化提供有价值的参考。下面总结了一些Nginx日志统计分析中常用的命令。 awk awk是一种强大的文本分析工具,它可以对文本进行基本的分析…

    Nginx 2023年5月16日
    00
  • nginx部署.net core站点的方法

    下面是详细讲解“nginx部署.net core站点的方法”的完整攻略。 一. 安装和配置.NET Core SDK 首先,需要在服务器上安装.NET Core SDK,这样才能运行.NET Core应用程序。 打开终端并运行以下命令安装.NET Core SDK: shell wget https://packages.microsoft.com/conf…

    Nginx 2023年5月16日
    00
  • Nginx的四层和七层代理

     理论部分:  所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器,它一般走的是tcp,udp协议    所谓七层负载均衡,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器,他走的是http协议。 四层代理实…

    2023年4月9日
    00
  • Nginx+Tomcat高性能负载均衡集群搭建教程

    我会详细讲解“Nginx+Tomcat高性能负载均衡集群搭建教程”的完整攻略。 1. 确定环境与需求 在进行Nginx+Tomcat高性能负载均衡集群搭建之前,我们需要先确立整个集群的环境与需求,这包括以下几个方面的内容: 确定服务器数量:根据系统的并发量和访问量确定大概需要多少台服务器进行负载均衡。 确定数据库选择:如果采用数据库,请根据系统的并发量和访问…

    Nginx 2023年5月16日
    00
  • Nginx层面配置基础用户验证的完整步骤

    下面是“Nginx层面配置基础用户验证的完整步骤”的完整攻略: 步骤一:安装Nginx 如果您还没有安装Nginx,可以在Ubuntu上执行以下命令进行安装: sudo apt update sudo apt install nginx 步骤二:创建密码文件 我们需要创建一个包含用户名和密码的文件以进行验证。可以将密码存储在一个文本文件中,格式如下: use…

    Nginx 2023年5月16日
    00
  • Nginx配置指令的执行顺序

    Nginx指令顺序:set与echo location /test { set $a 32; echo $a; set $a 56; echo $a; } # set 指令就是在 rewrite 阶段运行的,而 echo 指令就只会在 content 阶段运行 # rewrite 阶段总是在 content 阶段之前执行 #结果server-rewrite …

    Nginx 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部