「技术架构」5分钟把前端应用程序部署到NGINX

简介: 「技术架构」5分钟把前端应用程序部署到NGINX

Nginx是一个流行的web服务器,用于提供web应用程序的静态资源(客户端源)。我将解释如何将Nginx设置为静态内容资源web服务器,以及如何将它配置为Linux系统上的反向代理(连接客户机和后端)。基本上如何设置前端+后端与Nginx在Linux上。如果你:

  1. 希望将您的Angular/React/Vue或任何其他基于前端的框架应用程序放在Nginx上;
  2. 希望将Nginx上的客户端与后端连接(如Node.js或Java app);
  3. 要将域调用委托给内部web服务器,例如在其他端口(代理)上工作;

在Nginx上的前端应用

如果您使用任何框架(如Vue、Angular或React)开发前端应用程序,那么您最终将生成一个产品包——准备部署在web服务器上的文件(html、js、css)。在大多数框架中,运行生产构建将类似于npm构建,或者例如在Vue: Quasar构建中使用Quasar。您的生产文件应该在项目文件夹中生成的dest文件夹中。

在destfolder中生成的文件(前端应用程序)可以放在web服务器上,比如Apache或Nginx。

我假设您已经在目标机器上安装了Nginx(就像您的服务器机器一样)。

Nginx前端应用配置

Nginx配置可以在/etc/ Nginx下找到主配置文件名为nginx.conf。取决于你的系统配置可以有一点不同:

  1. nginx.conf文件中的整个配置(例如Arch linux)
  2. nginx中的主配置。conf,每个域分割域配置(就像在Ubuntu中,域配置可以在insitesavailable文件夹中找到)

假设您的域名是domain.com。您希望在http://domain.com(默认80端口)下设置前端应用程序。

nginx的配置如下:

server {
server_name domain.com;
location / {
root /usr/share/nginx/html/domain;
try_files $uri $uri/ /index.html;
}
}

如果您的配置基于nginx.conf (例如Arch linux):

在nginx.conf的http部分粘贴上面的配置

如果你使用Ubuntu:

  1. 在/etc/nginx/sites-available中创建文件domain.com(touch domain.com)
  2. 将上面的配置粘贴到文件中
  3. 转到/etc/nginx/sites-enabled并调用:sudo ln -s /etc/nginx/sites-available/domain.com /etc/nginx/sites-enabled/

下一步是向nginx resources文件夹提供前端应用程序内容。首先构建前端应用程序(例如,npm构建取决于您的设置)。然后将前端应用程序dist文件夹中创建的每个文件/文件夹移动到/usr/share/nginx/html/domain(必须在/usr/share/nginx/html下创建域文件夹)。

最后一步:sudo systemctl restart nginx.service

现在访问http://domain.com应该呈现前端应用程序。

连接后端

使用Angular/Vue/React,你可能正在开发服务器上工作,它会在更改后重新加载你的代码,并将你的请求代理到后端。现在,Nginx配置中必须提供类似的代理配置。

让我们假设所有从客户端到后端执行的请求都有/api前缀,例如get('/api/myWallet')正在对本地主机8888/api/myWallet后端服务器执行请求。您的配置可能不同,但通常情况下是这样工作的。

现在我们要做的就是将nginx设置为代理每个domain.com/api/*请求到本地主机:8888。这是配置:

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

将此配置粘贴到server{}部分(您在上面定义的)。

最后它应该是这样的:

server {
server_name domain.com;
location / {
root /usr/share/nginx/html/domain;
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:8888/api;
}
}

最后 :sudo systemctl restart nginx.service

总结

Nginx是一个功能强大的工具,在简单的场景中可以处理前端web应用程序的静态资源,并有可能将请求代理到后端服务器——这就是我们所需要的。实际上,我们在服务器上得到了类似于facade的东西,可以设置它来过滤甚至平衡流量。

相关文章
|
8月前
|
前端开发 JavaScript 应用服务中间件
在Docker部署的前端应用中使用动态环境变量
以上步骤展示了如何在 Docker 配置过程中处理并注入环墨遁形成可执行操作流程,并确保最终用户能够无缝地与之交互而无须关心背后复杂性。
421 13
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
994 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
人工智能 前端开发 JavaScript
AI程序员:通义灵码 2.0应用VScode前端开发深度体验
AI程序员:通义灵码 2.0应用VScode前端开发深度体验,在软件开发领域,人工智能技术的融入正深刻改变着程序员的工作方式。通义灵码 2.0 作为一款先进的 AI 编程助手,与广受欢迎的代码编辑器 Visual Studio Code(VScode)相结合,为前端开发带来了全新的可能性。本文将详细分享通义灵码 2.0 在 VScode 前端开发环境中的深度使用体验。
2371 2
AI程序员:通义灵码 2.0应用VScode前端开发深度体验
|
人工智能 前端开发 JavaScript
详解智能编码在前端研发的创新应用
接下来,人与智能体的交互将变得更为紧密,比如 N 年以后是否可以逐渐过渡。这个逐渐过渡的过程实际上是温和的,从依赖人类到依赖超大规模算力的转变,可能会取代我们的一些职责。这不仅仅是简单的叠加关系。对于AI和超大规模算力,这是否意味着我们可以大幅度提升软件质量,是否可以缩短研发周期并提高效率,还有创造出更优质的软件并持续发展,这无疑是肯定的。
937 25
|
Dart 前端开发 Android开发
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
479 4
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
人工智能 前端开发 JavaScript
智能编码在前端研发的创新应用
在前端开发领域,智能编码技术正引领一场变革,通过大模型的强大能力将自然语言需求直接转化为高效、可靠的代码实现。
554 10
|
人工智能 前端开发 JavaScript
详解智能编码在前端研发的创新应用 | 领通义灵码蛇年红包封面
详解智能编码在前端研发的创新应用 | 领通义灵码蛇年红包封面
|
7月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。