Nginx快速入门&&部署前端项目

导读:本篇文章讲解 Nginx快速入门&&部署前端项目,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

一,Nginx简介

1.1 负载均衡

演示

1.1.2 安装nginx

再复制一份一样的tomcat并修改端口号

 打开两个tomcat的服务

 打开防火墙中的8081端口

 修改Nginx配置

 重启Nginx服务,让配置生效

1.2 反向代理

 Nginx项目部署

1.确保前端项目能用

 2.将前台项目打包

动静分离

在电脑中增加本地映射关系

 完成Nginx动静分离的default.conf相关配置 

定义规格:URl符合xxx标准走动态请求,不符合走静态请求

修改action.js地址为自己本地中刚刚配置的映射,添加api的路径配置

 删除项目的本地目录中之前打出的dist包,并重新生成(配合Nginx动静分离)

 重启Nginx

将前端构建好的dist项目,上传到云服务器/usr/local/..

  最后再修改default.conf下的server

​重启Nginx即可


一,Nginx简介

示例图

Nginx快速入门&&部署前端项目

1.1 负载均衡

因为tomcat的承受请求的能力比较有限,如果当请求服务的数量超过了tomcat的负载时就会造成服务器崩溃的情况 所以此时Nginx的作用就来了,它可以用于分发浏览器的请求给多个tomcat,从而分担请求压力,实际处理请求的还是tomcat。(以上是小刘自己的理解,如有不正还望指出)所以我们也需要在我们的电脑的虚拟的服务器中安装多个tomcat,本期由于电脑的配置,小刘就安装两个tomcat,可以根据自己情况而定

演示

准备工作:1个nginx,2个tomcat

1.1.2 安装nginx

1) 添加 nginx 官方提供的 yum 源(需要联网且时间较长)
 rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.14.2-1.el7_4.ngx.x86_64.rpm

2) 使用 yum 安装 nginx
 yum install nginx

Nginx快速入门&&部署前端项目

注1:yum方式安装nginx,它的安装根目录为/etc/nginx
 注2:查看nginx版本
      rpm -qa | grep nginx

Nginx快速入门&&部署前端项目 默认端口是80

3) 启动及设置开机启动
 systemctl start nginx.service
 systemctl enable nginx.service

Nginx快速入门&&部署前端项目Nginx快速入门&&部署前端项目 4) 设置防火墙开放 80 端口
 firewall-cmd –zone=public –add-port=80/tcp –permanent
 firewall-cmd –reload && firewall-cmd –list-port

Nginx快速入门&&部署前端项目

 5) 测试 nginx 是否可被访问,应该显示nginx的欢迎界面
  http://服务器IP地址:80/

Nginx快速入门&&部署前端项目

此时我们就已经安装好其中一个服务器了

我们再启动两个tomcat,其中小刘本来就已经解压好了一个,只需要

再复制一份一样的tomcat并修改端口号

可以先进入自己存放解压包的文件夹,查看一下已有的文件(不是必要步骤)

Nginx快速入门&&部署前端项目

复制原有tomcat指令:

cp -r apache-tomcat-8.5.20/ apache-tomcat-8.5.20_8081/ 

 执行指令再次查看多了一个tomcat

Nginx快速入门&&部署前端项目

 修改它的端口号,目录从左到右

Nginx快速入门&&部署前端项目Nginx快速入门&&部署前端项目Nginx快速入门&&部署前端项目

 进入配置文件,修改完成Ctr+S

Nginx快速入门&&部署前端项目

Nginx快速入门&&部署前端项目 

Nginx快速入门&&部署前端项目

 打开两个tomcat的服务

Nginx快速入门&&部署前端项目

 打开防火墙中的8081端口

依次执行以下语句

开放端口
firewall-cmd –zone=public –add-port=8081/tcp –permanent

跟新防火墙规则
firewall-cmd –reload
防火墙列表
firewall-cmd –zone=public –list-ports

Nginx快速入门&&部署前端项目

 测试两个tomcat是否能启用

8081

Nginx快速入门&&部署前端项目

 8080

Nginx快速入门&&部署前端项目

 为了验证负载均衡的效果,我们将8081的tomcat的主页面给修改掉,看到时会请求到哪一个服务器

修改主页面的目录地址:

Nginx快速入门&&部署前端项目Nginx快速入门&&部署前端项目Nginx快速入门&&部署前端项目Nginx快速入门&&部署前端项目

将index.jsp中的head中的内容改为8081 

index.jsp

Nginx快速入门&&部署前端项目

 修改后的页面:

Nginx快速入门&&部署前端项目

 修改Nginx配置

在nginx.conf添加

upstream  tomcat_list {  #服务器集群名字
    server    127.0.0.1:8080  weight=1;   #服务器1   weight是权重的意思,权重越大,分配的概率越大。
    server    127.0.0.1:8081  weight=1; #服务器2   weight是权重的意思,权重越大,分配的概率越大

Nginx快速入门&&部署前端项目

在default.conf添加

location / {
      #root   /usr/share/nginx/html;
      #proxy_pass   http://172.17.0.3:8080;
      proxy_pass   http://tomcat_list;
      index index.html index.htm;
  }

Nginx快速入门&&部署前端项目

 重启Nginx服务,让配置生效

systemctl restart nginx 

Nginx快速入门&&部署前端项目

 重启服务后,访问Nginx页面 出现问题

Nginx快速入门&&部署前端项目

 去日志文件中查看报错

Nginx快速入门&&部署前端项目

 进入日志文件查看报错,经过一系列的查找资料发现原来是权限问题Nginx快速入门&&部署前端项目

 需要进入配置文件中执行该语句进行授权

setsebool -P httpd_can_network_connect 1

之后我们再去刷新nginx页面,发现可以访问到它随机分配给我们的服务器

Nginx快速入门&&部署前端项目Nginx快速入门&&部署前端项目 此时就算我们其中的一个tomcat崩溃了Nginx还可以把请求配发给其他的服务器

现在的Nginx已经可以给多个tomcat分发请求了!!!

1.2 反向代理

反向代理的情况就好比一个公司将它的tomcat放在了公司内网中,外界人员是无法直接链接并且发送请求的,此时就可以用到Nginx,因为Nginx中是可以设置好比白名单和黑名单的功能的,比如一个身居高位的处长,他的电脑的ip地址就可能会放在Nginx的白名单中,他就有可以使用的权限,而其他人是没有的,总的作用就是可以将一个在外网不能使用内网服务的情况进行一个反转的实现

 Nginx项目部署

1.确保前端项目能用

打开项目所在的本地目录启动 npm run dev

Nginx快速入门&&部署前端项目

 2.将前台项目打包

先关闭项目 

Nginx快速入门&&部署前端项目

再修改两处地方,第一处

hbuilderX打包vue项目白屏问题
将项目目录下的config文件夹里的index.js文件中,将build对象下的assetsPublicPath中的“/”,改为“./”后,再打包生成的 dist 文件
build: {
    // assetsPublicPath: ‘/’,//修改前
    assetsPublicPath: ‘./’,//修改后
}

Nginx快速入门&&部署前端项目

 

hbuilderX打包vue项目,element-ui的icon图标无法正常显示问题
问题:使用vue-cli3脚手架搭建的项目,在打包文件上服务器的时候,其他的css,js样式都能正确加载出路径,
但是element的icon图标却不能正常加载出来。

问题分析:
加载的路径https://yxq.linksign.cn/static/css/static/fonts/element-icons.535877f.woff
本应该加载的路径https://yxq.linksign.cn/static/fonts/element-icons.535877f.woff
打包的路径
事实上是打包时候读取的文件路径多了两层;
找到build文件的utils.js 中有打包的路径,看看generateLoaders();
Extract CSS when that option is specified, 指定该选项时提取CSS
发现少了个公共路径,加上pubilcPath
if (options.extract) {
     return ExtractTextPlugin.extract({
       use: loaders,
       fallback: ‘vue-style-loader’,
       // 解决icon路径加载错误
       publicPath:’../../’
     })
   } else {
     return [‘vue-style-loader’].concat(loaders)
   }

Nginx快速入门&&部署前端项目

打包:npm run build(测试本地项目打包后没有问题)

Nginx快速入门&&部署前端项目

 多了一个文件夹,里面就是打出来的项目

Nginx快速入门&&部署前端项目

 index.html中包含了原项目中的所有功能

Nginx快速入门&&部署前端项目

动静分离

在我们的项目中是大致分为两种文件的 有静态的也有动态的,此时Ngianx就可以做到将项目中不同的文件进行分类到不同的服务中,进行选择性的指定访问的服务器 动态请求走tomcat 静态请求走nginx

静态文件

Nginx快速入门&&部署前端项目

 动态请求

Nginx快速入门&&部署前端项目

在电脑中增加本地映射关系

1.C:\Windows\System32\drivers\etc\hosts中增加映射关系
192.168.195.139 www.xl.com

Nginx快速入门&&部署前端项目

 完成Nginx动静分离的default.conf相关配置 

        定义规格:URl符合xxx标准走动态请求,不符合走静态请求

Nginx快速入门&&部署前端项目

 配置到这里我们只是完成了后台的动态的的负载均衡,静态还没有,前端项目没有配置

此时我们需要重新打出一份前端项目,并提前

修改action.js地址为自己本地中刚刚配置的映射,添加api的路径配置

Nginx快速入门&&部署前端项目

 删除项目的本地目录中之前打出的dist包,并重新生成(配合Nginx动静分离)

Nginx快速入门&&部署前端项目

Nginx快速入门&&部署前端项目

 重启Nginx

 Nginx快速入门&&部署前端项目

 测试打包出来的项目

Nginx快速入门&&部署前端项目

在登陆成功时发送的请求

Nginx快速入门&&部署前端项目

 其中有个api,所以被Nginx的配置中的动态规格给处理了

Nginx快速入门&&部署前端项目

将前端构建好的dist项目,上传到云服务器/usr/local/..

小刘新建了一个文件夹用于存放的dist

Nginx快速入门&&部署前端项目

Nginx快速入门&&部署前端项目

  最后再修改default.conf下的server

listen       80;            #监听80端口,可以改成其他端口
    #server_name  localhost;    #当前服务的域名
    server_name  www.xl.com; #当前服务的域名(虚拟域名也可以)
    root         /usr/local/mypro/dist;      #将要访问的网站的根目录,nginx节点会自动继承父节点的配置;这里放到/usr/local/*,放到其他路径下会有权限相关问题;必要的时候配置Nginx.conf的user为root

Nginx快速入门&&部署前端项目重启Nginx即可

systemctl restart nginx

Nginx快速入门&&部署前端项目

输入www.xl.com地址

成功

Nginx快速入门&&部署前端项目

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/50996.html

(0)
小半的头像小半
0 0

相关推荐

  • Tomcat 轻量级容器原理探秘 异步通信篇 微信精选

    Tomcat 轻量级容器原理探秘 异步通信篇

    0 0153
    小半的头像 小半
    2023年11月20日
  • 用man命令查看Linux手册页(man 1, man 2,...) 微信精选

    用man命令查看Linux手册页(man 1, man 2,…)

    0 0371
    小半的头像 小半
    2023年2月11日
  • dubbo重点,SPI的自适应扩展原理|原创 微信精选

    dubbo重点,SPI的自适应扩展原理|原创

    0 0115
    小半的头像 小半
    2022年10月29日
  • kube-scheduler源码分析(四)之 findNodesThatFit 其他分类

    kube-scheduler源码分析(四)之 findNodesThatFit

    0 090
    小半的头像 小半
    2022年10月20日
  • 图文并茂!深入了解RocketMQ的内存映射机制 微信精选

    图文并茂!深入了解RocketMQ的内存映射机制

    0 0197
    小半的头像 小半
    2022年12月6日
  • 根据HashMap的红黑树来看看红黑树 其他分类

    根据HashMap的红黑树来看看红黑树

    0 0104
    小半的头像 小半
    2022年8月1日
  • Spring Cloud Alibaba微服务项目中Redis实现分布式事务锁实践 其他分类

    Spring Cloud Alibaba微服务项目中Redis实现分布式事务锁实践

    0 0117
    小半的头像 小半
    2022年10月16日
  • 重置表单:一招恢复初始数据,轻松搞定! 微信精选

    重置表单:一招恢复初始数据,轻松搞定!

    0 0187
    小半的头像 小半
    2023年10月15日
  • Django模型之Meta选项详解 其他分类

    Django模型之Meta选项详解

    0 0122
    小半的头像 小半
    2022年11月3日
  • 处理 element-ui Table组件使用fixed=“right“后显示错位问题 其他分类

    处理 element-ui Table组件使用fixed=“right“后显示错位问题

    0 0241
    小半的头像 小半
    2022年10月29日
  • 浏览器渲染流程(下) 分层、绘制、合成 其他分类

    浏览器渲染流程(下) 分层、绘制、合成

    0 0178
    小半的头像 小半
    2022年10月25日
  • ChatGPT|从0构建GPT-工程实践篇 云原生

    ChatGPT|从0构建GPT-工程实践篇

    0 0190
    小半的头像 小半
    2023年11月3日

站长精选

  • SpringBoot整合Canal+RabbitMQ监听数据变更~

    SpringBoot整合Canal+RabbitMQ监听数据变更~

    2023年2月27日

  • IDEA技巧汇总:这30个强大的功能,总有一个你能用上!

    IDEA技巧汇总:这30个强大的功能,总有一个你能用上!

    2022年12月12日

  • 华为 OD,拿下了!

    华为 OD,拿下了!

    2023年3月29日

  • kafka 分布式的情况下,如何保证消息的顺序消费?

    kafka 分布式的情况下,如何保证消息的顺序消费?

    2023年10月20日

  • Nginx自动封锁拉黑可疑IP

    Nginx自动封锁拉黑可疑IP

    2023年5月3日

  • HashMap 使用的时候指定容量?你真的用明白了吗?

    HashMap 使用的时候指定容量?你真的用明白了吗?

    2022年11月21日

  • 从零开始,教你如何开发一款自己的 IDEA 插件!

    从零开始,教你如何开发一款自己的 IDEA 插件!

    2023年9月5日

  • SpringBoot 集成 Camunda 流程引擎,实现一套完整的业务流程

    SpringBoot 集成 Camunda 流程引擎,实现一套完整的业务流程

    2023年6月29日

  • 小心,高并发系统居然被一行日志击垮?

    小心,高并发系统居然被一行日志击垮?

    2022年11月15日

  • 分类树菜单,我从2s优化到0.1s

    分类树菜单,我从2s优化到0.1s

    2023年5月20日

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!

聚圣源八哥学舌激励的近义词视频监控软件华夏能源革新股票基金起名字女孩王甚么好听用锦起名字好易佳乐猛虎王80平方米装修效果图给宝宝起水果小名王氏宝宝起名大全男生韩起名字大全男孩子乡野风月ename究极日月cia羊肉火锅起名大全美味的性爱向往温暖五行什么不缺的人怎么起名起英文品牌名武汉申通寿司加盟店莹莹的起名含义王怎么起名字女孩名字duowan.com关于悟空理财漩涡向日葵周易免费起名字起名周易测名打分测试起名字的林姓淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化