nginx部署多前端项目的几种方法


Posted in Servers onMay 25, 2021

个人总结了3种方法来实现在一台服务器上使用nginx部署多个前端项目的方法。

  • 基于域名配置
  • 基于端口配置
  • 基于location配置

在正式开始之前,我们先来看一下nginx安装的默认配置文件: /etc/nginx/nginx.conf 文件

nginx部署多前端项目的几种方法

可以看到图中的:include /usr/nginx/modules/*.conf,这句话的作用就是可以在nginx启动加载所有 /usr/nginx/modules/ 目录下的 *.conf 文件。 所以,平时我们为了方便管理,可以在此目录下面定义自己的 xx.conf 文件即可。但是注意,一定要以.conf 结尾。

介绍完毕,下面我们先来说一下最常用,也是许多公司线上使用的方式。

基于域名配置

基于域名配置,前提是先配置好了域名解析。比如说你自己买了一个域名:www.fly.com。 然后你在后台配置了2个它的二级域名: a.fly.com、 b.fly.com。

配置文件如下:

配置 a.fly.com 的配置文件:

vim /usr/nginx/modules/a.conf

server {
        listen 80;
        server_name a.fly.com;
        
        location / { 
                root /data/web-a/dist;
                index index.html;
        }
}

配置 b.fly.com 的配置文件:

vim /usr/nginx/modules/b.conf

server {
        listen 80;
        server_name b.fly.com;
        
        location / { 
                root /data/web-b/dist;
                index index.html;
        }
}

这种方式的好处是,主机只要开放80端口即可。然后访问的话直接访问二级域名就可以访问。

基于端口配置

配置文件如下:

配置 a.fly.com 的配置文件:

vim /usr/nginx/modules/a.conf

server {
        listen 8000;
        
        location / { 
                root /data/web-a/dist;
                index index.html;
        }
}

# nginx 80端口配置 (监听a二级域名)
server {
        listen  80;
        server_name a.fly.com;
        
        location / {
                proxy_pass http://localhost:8000; #转发
        }
}

配置 b.fly.com 的配置文件:

vim /usr/nginx/modules/b.conf

server {
        listen 8001;
        
        location / { 
                root /data/web-b/dist;
                index index.html;
        }
}

# nginx 80端口配置 (监听b二级域名)
server {
        listen  80;
        server_name b.fly.com;
        
        location / {
                proxy_pass http://localhost:8001; #转发
        }
}

可以看到,这种方式一共启动了4个server,而且配置远不如第一种简单,所以不推荐。

基于location配置

配置文件如下:

配置 a.fly.com 的配置文件:

vim /usr/nginx/modules/ab.conf

server {
        listen 80;
        
        location / { 
                root /data/web-a/dist;
                index index.html;
        }
        
        location /web-b { 
                alias /data/web-b/dist;
                index index.html;
        }
}

注意: 这种方式配置的话,location / 目录是root,其他的要使用alias。

可以看到,这种方式的好处就是我们只有一个server,而且我们也不需要配置二级域名。并且前端项目里要配置二级目录

react 配置请参考:https://blog.csdn.net/mollerlala/article/details/96427751

vue 配置请参考:https://blog.csdn.net/weixin_33868027/article/details/92139392

到此这篇关于nginx部署多前端项目的几种方法的文章就介绍到这了,更多相关nginx部署多前端项目内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
nginx处理http请求实现过程解析
Mar 31 Servers
Nginx Rewrite使用场景及配置方法解析
Apr 01 Servers
利用Nginx代理如何解决前端跨域问题详析
Apr 02 Servers
apache基于端口创建虚拟主机的示例
Apr 24 Servers
nginx服务器的下载安装与使用详解
Aug 02 Servers
Nginx缓存设置案例详解
Sep 15 Servers
OpenStack虚拟机快照和增量备份实现方法
Apr 04 Servers
在Docker容器中部署SQL Server
Apr 11 Servers
Windows Server 2012 修改远程默认端口3389的方法
Apr 28 Servers
超越Nginx的Web服务器caddy优雅用法
Jun 21 Servers
Docker与K8s关系介绍不会Docker也可以使用K8s
Jun 25 Servers
Nginx安装配置详解
Jun 25 Servers
Nginx如何配置Http、Https、WS、WSS的方法步骤
May 11 #Servers
windows下快速安装nginx并配置开机自启动的方法
uwsgi+nginx代理Django无法访问静态资源的解决
May 10 #Servers
教你快速开启Apache SkyWalking的自监控
Apache Calcite 实现方言转换的代码
Apr 24 #Servers
apache基于端口创建虚拟主机的示例
Apr 24 #Servers
Nginx进程管理和重载原理详解
You might like
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
帝国cms目录结构分享
2015/07/06 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
2021/03/09 PHP
Javascript 错误处理的几种方法
2009/06/13 Javascript
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
JS实现当前页居中分页效果的方法
2015/06/18 Javascript
基于jQuery的$.getScript方法去加载javaScript文档解析
2017/11/08 jQuery
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
详解js静态检查工具eslint配置文件
2018/11/23 Javascript
vue将单页面改造成多页面应用的方法
2018/11/25 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
python+POP3实现批量下载邮件附件
2018/06/19 Python
python画图——实现在图上标注上具体数值的方法
2019/07/08 Python
Python秒算24点实现及原理详解
2019/07/29 Python
python基于celery实现异步任务周期任务定时任务
2019/12/30 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
python em算法的实现
2020/10/03 Python
pip install命令安装扩展库整理
2021/03/02 Python
CSS3 简写animation
2012/05/10 HTML / CSS
使用css实现android系统的loading加载动画
2019/07/25 HTML / CSS
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
StudentUniverse英国:学生航班、酒店和旅游
2019/08/25 全球购物
J2EE面试题大全
2016/08/06 面试题
小学新教师培训方案
2014/02/03 职场文书
学生期末评语大全
2014/04/30 职场文书
学雷锋活动总结报告
2014/06/26 职场文书
2014年人事科工作总结
2014/11/19 职场文书
暂住证证明
2015/06/19 职场文书
学长教您写论文:经验总结
2019/07/09 职场文书
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android