Linux(Nginx)

news2024/12/21 22:21:32

目录

一、Nginx简介

二、Nginx使用

Nginx安装

tomcat负载均衡 

 Nginx配置

三、Nginx部署项目

项目打包前

将前端项目打包(测试本地项目打包后没问题)

ip/host主机映射

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

将前台项目打包(配合Nginx动静分离)


一、Nginx简介

1.负载均衡:流量分摊

2.反向代理:处理外网访问内网问题

3.动静分离:判断动态请求还是静态请求,选择性的访问指定服务器

二、Nginx使用

Nginx安装

 添加 nginx 官方提供的 yum 源(需要联网且时间较长)

 rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.14.2-1.el7_4.ngx.x86_64.rpm

 

 使用 yum 安装 nginx

 yum install nginx

 

 注1:yum方式安装nginx,它的安装根目录为/etc/ngin

注2:查看nginx版本
 rpm -qa | grep nginx

 

 启动及设置开机启动

 systemctl start nginx.service
 systemctl enable nginx.service

 设置防火墙开放 80 端口

firewall-cmd --zone=public --add-port=80/tcp --permanent
 firewall-cmd --reload && firewall-cmd --list-port

 测试 nginx 是否可被访问,应该显示nginx的欢迎界面

 http://服务器IP地址:80/

tomcat负载均衡 

准备2个tomcat

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

 第2个tomcat修改的配置

在apache-tomcat-8.5.20/conf/目录下的server.xml文件

HTTP端口,默认8080,改为8081

远程停服务端口,默认8005,改为8006

AJP端口,默认8009,改8010

 启动tomcat、防火墙开放8081端口

 修改tomcat界面

apache-tomcat-8.5.20&apache-tomcat-8.5.20_8081下的webapp/ROOT/index.jsp

 Nginx配置

查看Nginx目录

 systemctl status nginx

 

在etc/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是权重的意思,权重越大,分配的概率越大

在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服务,让配置生效

systemctl restart nginx

 出现权限问题

#现象:connect() to 192.168.195.139:8080 failed (13: Permission denied) while connecting to upstream
#解决方案:执行下面命令
setsebool -P httpd_can_network_connect 1

 

 测试Nginx负载2个tomcat的效果

来回切换tomcat:8080、tomcat:8081两个服务器的类容

负载均衡后台项目发布

#保障以下3个链接都能访问项目
http://192.168.228.130:8080/T216_SSH/vue/treeNodeAction.action
http://192.168.228.131:8081/T216_SSH/vue/treeNodeAction.action
http://192.168.195.130/T216_SSH/vue/treeNodeAction.action
#注意:确保云数据库中是有数据的

#附录
#查看端口号
#查看所有端口号
lsof -i
#查看指定端口号
lsof -i:端口号
#杀死指定端口号进程    kill -9 PID
kill -9 42177

#查看nginx的访问日志和错误日志
cat /var/log/nginx/access.log
cat /var/log/nginx/error.log 

最终的结果就是,Nginx访问一个网址,是由两个tomcat共同承担压力 

三、Nginx部署项目

项目打包前

确保前台项目能用

action.js更改配置

hbuilderX打包vue项目白屏问题
将项目目录下的config文件夹里的index.js文件中,将build对象下的assetsPublicPath中的“/”,改为“./”

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

将前端项目打包(测试本地项目打包后没问题)

生成dist文件夹,点击index.html访问项目测试

npm run build

ip/host主机映射

在C:\Windows\System32\drivers\etc\hosts中增加映射关系

将虚拟机ip映射域名www.maomao.com

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

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

default.conf添加

location / {
            #该句代码是为解决history路由不能跳转的问题,在vue-router官网有介绍 
        try_files $uri $uri/  /index.html;
    }
    location  ^~/api/ {
        #^~/api/表示匹配前缀是api的请求,proxy_pass的结尾有/, 则会把/api/*后面的路径直接拼接到后面,即移除api
        proxy_pass http://tomcat_list/;
    }

 修改action.js

将前台项目打包(配合Nginx动静分离)

重启Nginx

systemctl restart nginx

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

default.conf添加

listen       80;            #监听80端口,可以改成其他端口
        #server_name  localhost;    #当前服务的域名
    server_name  www.maomao.com; #当前服务的域名(虚拟域名也可以)
    root         html/crm;      #将要访问的网站的根目录,nginx节点会自动继承父节点的配置

能运行出来就是配置好了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1394.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

real-word super resulution: real-sr, real-vsr, realbasicvsr 三篇超分和视频超分论文

real-world image and video super-resolution 文章目录real-world image and video super-resolution1. Toward Real-World Single Image Super-Resolution:A New Benchmark and A New Model(2019)1.1 real-world数据集制作1.2 LP-KPN网络结构1.3 拉普拉…

近八成中国程序员起薪过万人民币,你过了么?

打工者联盟为了抵抗996、拖欠工资、黑心老板、恶心公司,让我们组成打工者联盟。客观评价自己任职过的公司情况,为其他求职者竖起一座引路的明灯。https://book.employleague.cn/一项调查显示,近八成中国程序员本科毕业生起薪过万(…

Oracle数据库中的数据完整性

目录 1.数据完整性约束作用 2.数据完整性约束的分类 3.完整性约束的状态 4.域完整性的实现 (1)check约束 ①可视化方式创建check约束 ②命令方式创建约束 ③修改表创建的约束 ④删除约束 (2)实体完整性约束实现 ①prim…

思科dhcp服务器动态获取ip地址

项目要求: 某公司共有网管中心、行政部、技术部、三个部门,分别处在一栋大楼中的两个楼层,为了保证公司内部主机始终能够连接Internet,采用双向冗余设计,分别使用路由器R1与路由器R2连接中国电信和中国联通。 1.首先为了避免不必要…

【算法详解】数据结构:7种哈希散列算法,你知道几个?

一、前言 哈希表的历史 哈希散列的想法在不同的地方独立出现。1953 年 1 月,汉斯彼得卢恩 ( Hans Peter Luhn ) 编写了一份IBM内部备忘录,其中使用了散列和链接。开放寻址后来由 AD Linh 在 Luhn 的论文上提出。大约在同一时间,IBM Researc…

项目进度管理

第3 章 项目进度管理 3.1 概述 1.项目进度管理是指在项目实施过程中,对各阶段的进展程度和项目最终完成的期限所进行的管理,是在 规定的时间内,拟定出合理且经济的进度计划(包括多级管理的子汁划),在执行该计划的过程…

常见的限流算法的原理以及优缺点

原文网址:常见的限流算法的原理以及优缺点_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍限流常用的算法及其优缺点。 常用的限流算法有: 计数器(固定窗口)算法滑动窗口算法漏桶算法令牌桶算法 下面将对这几种算法进行分别介绍…

tmux的简单使用

文章目录一、认识tmux1.1 会话1.2 tmux的作用1.3 tmux的安装二、tmux的使用2.1 会话管理2.1.1 创建会话2.1.2 退出会话2.1.3 从终端环境进入会话2.1.4 查看会话列表2.1.5 销毁会话2.1.6 重命名会话2.2 窗口管理2.3 窗格管理一、认识tmux 1.1 会话 命令行的典型使用方式是&…

rocketmq是如何消费

拉取消息的请求都在pullRequestQueue队列里, 拉取消息成功后设置下一次需要拉取的offset, boolean dispatchToConsume processQueue.putMessage(pullResult.getMsgFoundList()); 这个方法会把拉取回来的消息放进msgTreeMap里面 然后消费拉取回来的消…

MongoDB副本集成员如何复制新数据

复制是指在多台服务器上保持相同的数据副本。MongoDB 实现此功能的方式是保存操作日志(oplog),其中包含了主节点执行的每一次写操作。oplog 是存在于主节点 local 数据库中的一个固定集合。从节点通过查询此集合以获取需要复制的操作。 每个…

Solving Inverse Problems With Deep_Neural Networks – Robustness Included_

作者:Martin Genzel, Jan Macdonald, and Maximilian Marz期刊:preprint arXiv时间:2020代码链接:代码论文链接:论文 1 动机与研究内容 最近工作发现深度神经网络对于图像重构的不稳定(instabilities),以…

记一次漏洞挖掘【网络安全】

漏洞信息 从CVE-2019-10999查看该CVE的基础信息得知,这是一个栈溢出漏洞,攻击者在已登录的情况下可以通过向wireless.htm发送一个超长的WEPEncryption参数导致栈溢出,从而执行任意命令攻击. 现在我们利用Shambles Desktop工具确定这个漏洞的…

单商户商城系统功能拆解23—用户标签

单商户商城系统,也称为B2C自营电商模式单店商城系统。可以快速帮助个人、机构和企业搭建自己的私域交易线上商城。 单商户商城系统完美契合私域流量变现闭环交易使用。通常拥有丰富的营销玩法,例如拼团,秒杀,砍价,包邮…

在Windows使用VSCode搭建嵌入式Linux开发环境

在Windows使用VSCode搭建嵌入式Linux开发环境 百问网已经制作好了完备的Ubuntu镜像,可以从这里下载: 链接:https://pan.baidu.com/s/1vw4VUV_Mvt0HXz8IC66ACg 提取码:iftb 我们也正在(2022.10.17开始)使用纯粹的Ubuntu环境开始…

孙宇晨2022釜山区块链周演讲:区块链是未来数字城市发展基石

据韩国媒体全球经济新闻10月27日报道,波场TRON创始人孙宇晨线上出席了2022 釜山区块链周(Blockchain Week in Busan 2022,以下简称BWB 2022),并发表《 The Cities of Tomorrow》主题演讲。孙宇晨表示,“区块…

生产环境数据库表迁移实践集锦

数据库表迁移是开发者必须要掌握的一种能力,对中高级开发者来说更是如此。工作中随着公司业务不断发展、系统架构的慢慢调整演化,迁移数据库表是不可避免的。由于数据是公司最最核心的资产,所以对生产环境数据库表的迁移并不是谁都可以去实施…

Web服务器、Ftp服务器、DNS服务器搭建【高级路由协议与实验04-2】

上一篇自学练习了如何搭建web服务器 文章目录网络设置1.修改配置文件2.改成桥接模式访问外网3.选择网卡4.重启网卡一、web服务器补充:步骤1.安装httpd软件包2.将httpd服务设为开始自启动,并启动该服务3.查看httpd服务是否启动4.在防火墙开放80端口并查看…

小白学习spring第一天

第二章:Spring 第1节:概述 1.1 介绍 heap stack Spring是一个分层的Java SE/EE full-stack(一站式)轻量级开源框架,以 IoC(Inverse Of Control:控制反转)和 AOP(Aspec…

力扣刷题day32|738单调递增的数字、714买卖股票的最佳时机含手续费、968监控二叉树

文章目录738. 单调递增的数字思路难点:遍历顺序难点:设置flag714. 买卖股票的最佳时机含手续费贪心思路难点968. 监控二叉树思路难点:如何隔两个节点放一个摄像头738. 单调递增的数字 力扣题目链接 当且仅当每个相邻位数上的数字 x 和 y 满…

常用算法———P I D控制算法(P I D三个参数的作用和两种P I D算法的代码实现)

如果有错误请及时指出,大家一起学习交流。 目录 一、PID的概述 二、PID三个参数的控制原理 1、P控制器 2、I控制器 3、D控制器 4、PID控制器 5、PID的数学公式 三、位置式PID和增量式PID的差别和代码实现 1、位置式PID和增量式PID的差别 2、位置式PID …