Linux系统安装nginx+入门笔记

news2024/11/15 23:51:55

安装过程

1.加载wget命令

yum install wget

2.拉取安装包

wget https://nginx.org/download/nginx-1.16.1.tar.gz
3.解压安装包

tar -zxvf nginx-1.16.1.tar.gz 
 

4.执行这个命令自动配置一下

5.编译安装

make
make install

6.查看nginx安装的位置

whereis nginx

7.进入sbin

cd /usr/local/nginx/sbin

8.执行

nginx

8.在Linux系统上访问localhost:8080,看到页面:

 

标志成功安装了

入门笔记

什么是Nginx?

Nginx是一个高性能的HTTP和反向代理web服务器,Nginx代理的是服务器,Nginx本身也是台服务器,同时也提供了IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。

 为什么要使用Nginx?

单点服务器早已无法承载上万个乃至数十万个用户的持续访问。比如一台Tomcat服务器在理想状态下只能够可以承受住2000个左右的并发量,为了解决这个问题,就需要多台Tomcat服务器来进行负载均衡。

那么,应该如何实现负载均衡?Nginx就是其中的一种解决方案,当用户访问网站时,Nginx拦截到这个访问请求,并将其通过轮询的方式均匀地分配到不同的服务器上。

 并且,在Nginx中有一种ip_hash策略,它可以获取到用户的真实IP,计算出hash值来选择服务器,这也是一种优秀的负载均衡方式。 所以,掌握Nginx成为了Web开发学习道路上不可缺少的一部分。

什么是正向代理?

正向代理就是客户端将自己的请求率先发给代理服务器,通过代理服务器将请求转发给服务器,如VPN,为了可以连上国外的网站,客户端需要使用一个可以连接外网的服务器作为代理这就是VPN,并且客户端能够连接上该代理服务器。

什么是反向代理?

反向代理代理服务器端,而正向代理代理客户端,在有多台服务器分布情况下,为了能让客户端访问到的IP地址为同一个网站,需要使用反向代理

Zuul与Nginx有什么区别?

  1. 功能和用途不同:Zuul是基于Java开发的服务网关,他提高动态路由,负载均衡,过滤器链等功能,而Nginx是一款高性能的Web服务器和反向代理服务器,主要用于处理HTTP请求和响应,提高负载均衡,反向代理,缓存等功能
  2. 实现方式不同:Zuul使用SpringCloud进行管理和部署,可以通过配置文件或API进行管理,而Nginx是基于C语言开发的,采用模块化的架构涉及,可通过配置文件进行管理
  3. 可扩展性和定制性不同:Zuul可以方便集成springcloud中的其他组件和服务,提高更加完整的服务治理方案,同时Zuul也提供一些扩展点,可根据业务需求进行自定义开发。而Nginx也提供了一些模块和插件,但扩展和定制性相对较低
  4. 语言和生态环境不同:zuul是基于java开发的,更适合Java开发者,Nginx是使用C语言开发的,更适合系统运维人员和Linux下的应用程序开发者,可以与Linux,OpenResty等生态环境无缝集成

Nginx比Zuul功能强大,可以整合lua脚本语言,抗并发性能要好
Zuul适用于为服务器中的过滤和拦截等功能
最好是建议Nginx和Zuul一起合作,nginx实现反向代理,zuul实现微服务网关拦截。

在Nginx的安装目录下有一个conf文件夹,打开其中的nginx.conf文件

在nginx.conf文件中配置:

反向代理一台服务器

在location参数中添加proxy_pass字段,并填写需要反向代理的服务器地址与端口号:

注意:每一行的配置都需要以封号结尾!!!

反向代理多台服务器

除了不断地添加proxy_pass参数,更好的解决方案是配置upstream服务器组!

在配置文件的http块中添加upstream属性:

配置完nginx.conf后 启动测试

进入Nginx安装目录下的sbin文件夹,运行命令nginx,

如果之前已经启动,无需关闭nginx服务,只需要让nginx重新加载配置文件即可,命令:

nginx-s reload

 刷新浏览器,如果反向代理成功,那么访问的路径会映射到配置文件中的服务器地址

将来随着用户量增长,肯需要添加新服务器,这时候只需要修改配置文件,使用ngnx-s reload命令即可,无需关闭nginx服务器

关闭服务命令

nginx-s stop  #立即停止,无论是否在工作 

nginx-s quit  #等待进程完成当前工作后安全退出

Nginx中的负载均衡

Nginx负载均衡方式有如加权轮询(默认)、IP哈希(将用户的ip计算成哈希值)、url哈希等等,这里就以加权轮询作为介绍。加权轮询是通过给服务器添加各自的权重值,Nginx通过权重来进行请求的分配,权重越高接收到的请求数量越多。

上图配置了三台服务器,在加权轮询的模式下,6次不同的请求中,权重为3的服务器将会分配到3次请求,权重为2的服务器会分配到2个请求,权重为1的服务器则会分配到1个请求。负载均衡大大减少了在高并发的环境下服务器宕机的风险!

ip_hash:
加权轮询和普通轮询方式都存在一个问题就是说,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为我们是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。
我们可以采用ip_hash指令解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题

 配置Nginx中的负载均衡

同样也是在nginx.conf中配置

添加完成后nginx-s reload 刷新一下即可 

Nginx的动静分离

Nginx的静态处理能力很强,但是动态处理能力不足,因此在企业中常用动静分离奇数。动静分离技术其实是采用代理方式,在server{}端加入待正则匹配的location来指定匹配项针对PHP的动静分离;静态页面交给Nginx处理,动态页面交给PHP-FPM模块或Apache处理。在Nginx配置中,是通过location配置段配合正则匹配实现静态和动态页面的不同处理方式

Nginx常用命令 

cd /usr/local/nginx/sbin/
./nginx  启动
./nginx -s stop  停止
./nginx -s quit  安全退出
./nginx -s reload  重新加载配置文件  如果我们修改了配置文件,就需要重新加载。
ps aux|grep nginx  查看nginx进程
 

 总结:ok,我又学会了一点

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

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

相关文章

基于Python的反爬虫技术的研究设计与实现

博主介绍:擅长Java、微信小程序、Python、Android等,专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案例…

链表刷题(4~8)

目录 反转链表 返回中间节点 倒数k个节点 链表分割 判断回文 反转链表 单链表刷题时我们遇到过一个反转链表,那时我们采用的是头插的方式达到反转的效果,那能不能把指针反过来呢?答案是可以的。 这里用三个指针是为了记录后面节点的数据&…

SpringBoot+Vue 的智慧养老系统(Java 项目,附源码,数据库)

作者:程序员徐师兄 个人简介:7 年大厂程序员经历,擅长Java、微信小程序、Python、Android等,大家有这一块的问题可以一起交流! 各类成品java毕设 。javaweb,ssh,ssm,springboot等等项…

Jira 8.4.1在Windows环境下的安装和配置

一. Jira安装的环境准备 1.JDK1.8的下载和安装 Jira的运行是依赖java环境的,也就是说需要安装JDK并且要是1.8以上版本。(网上搜一下教程) 2.MySQL数据库的下载和安装(网上搜一下教程) 数据库版本:MySQL5.6,版本太高有时会出现连接不到的…

从双目标定到立体匹配:pyton实践指南

文章目录 前言标定立体匹配文章已经同步更新在3D视觉工坊啦,原文链接如下: 前言 立体匹配是计算机视觉中的一个重要领域,旨在将从不同角度拍摄的图像匹配起来,以创建类似人类视觉的3D效果。实现立体匹配的过程需要涉及许多步骤&a…

华为OD机试真题B卷 Java 实现【统计每个月兔子的总数】,附详细解题思路

一、题目描述 有一种兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子。 例如:假设一只兔子第3个月出生,那么它第5个月开始会每个月生一只兔子。 一月的时候有一只兔子,假如兔子都…

dvwa靶场通关(七)

第七关:SQL Injection(sql注入) low 我们输入 1,出现报错信息,根据报错信息可知,查询语句是单引号闭合的字符型 接着判断字段数 1 order by 3# 报错 1 order by 2# 正常 所以字段数就是2 利用联合查询爆出数据库名…

农村小子背井离乡北漂的这些年

人生虽不尽人意、生活也并不完美、可生活依旧很美 1. 写在前面 由于工作变动及其他种种原因吧,很长的一段时间内没有再去写文章。始于2019年初夏,止于2020年初冬,再次落笔于2023年的夏季。恰好今天是端午节,祝大家端午安康 白驹过…

springboot第28集:springboot一些概念

DataScopeAspect 数据过滤处理 此切面在执行带有ControllerDataScope注解的方法之前进行数据权限过滤。首先获取当前登录用户,然后判断当前用户是否为超级管理员。如果不是超级管理员,则获取权限字符,默认使用上下文中的权限字符。接下来&am…

【计算机组成原理】2、二进制和十六进制转换,进制相减、内存地址偏移计算与容量计算

文章目录 一、进制转换1.1 二进制转十六进制1.2 十六进制转二进制 二、进制相减2.1 十六进制 三、内存地址偏移计算3.1 根据首末地址,求存储容量3.2 根据末地址 和 存储容量,求首地址 一、进制转换 1.1 二进制转十六进制 因 2 4 16 2^416 2416&#…

leetcode300. 最长递增子序列(动态规划-java)

最长递增子序列 leetcode300. 最长递增子序列题目描述解题思路代码演示: 二分法改进(N * logN)动态规划专题 leetcode300. 最长递增子序列 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/longest-increasing-subsequenc…

C++标准输出

C将输入和输出看作字节流,输入时,程序从输入流中抽取字节,输出时,程序将自己插入到输出流中,流充当了程序与流源或流目标之间的桥梁,也就是说C通过流与硬件,文件相关联,流赋予了C程序…

[数字图像处理]第六章 彩色图像处理

第六章 彩色图像处理 引言 ​ 彩色图像处理可分为两个主要领域:全彩色处理和伪彩色处理。在第一类中, 通常要求图像用全彩色传感器获取,如彩色电视摄像机或彩色扫描仪。在第二类中,问题是对一种特定的单色灰度或灰度范围赋予一种…

设计模式之装饰者模式笔记

设计模式之装饰者模式笔记 说明Decorator(装饰)目录装饰者模式示例类图快餐类炒饭类炒面类装饰者类鸡蛋类培根类测试类 说明 记录下学习设计模式-装饰者模式的写法。JDK使用版本为1.8版本。 Decorator(装饰) 意图:动态地给一个对象添加一些额外的职责。 结构: 其中&#x…

【Neo4j教程之CQL命令基本使用】

🚀 Neo4j 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,C…

Python基础篇(二):入门基础必备知识

Python基础篇(一):如何使用PyCharm创建第一个Python项目(包含tools) 入门基础必备知识 1. 标识符2. 关键字2.1 关键字字典 3. 引号3.1 表示字符串3.2 在字符串中使用引号3.3 创建多行字符串3.4 在注释中使用引号 4. 编码5. 输入输出5.1 输入示例5.2 输出示例5.3 格…

王道计算机网络学习笔记(3)——数据链路层

前言 文章中的内容来自B站王道考研计算机网络课程,想要完整学习的可以到B站官方看完整版。 三:数据链路层 3.1:数据链路层功能概述 结点:主机、路由器 链路:网络中两个结点之间的物理通道,链路的传输介…

PolarFormer:Multi-camera 3D Object Detection with Polar Transformer——论文笔记

参考代码:PolarFormer 1. 概述 介绍:在仓库RoboBEV中总结了现有的一些bev感知算法在不同输入情况下的鲁棒性,在这些感知算法中PolarFormer拥有较为不错的泛化性能。这个算法的思想是将之前由直角坐标系栅格化构建bev网格,转换到由…

Unity之透明度混合与ps的透明度混合计算结果不一致

一、问题 前段时间学习shader时发现了一个问题,一张纯红色透明度为128的图片叠加在一张纯绿色的图片上得出的结果与ps中的结果不一致。网上查找了ps中的透明混合的公式为 color A.rgb*A.alpha B.rgb*(1-A.alpha)。自己使用代码在unity中计算了一下结果总是不对。…

Python--异常处理

Python--异常处理 <font colorblue>一、异常<font colorblue>二、异常处理语句<font colorblue>1、try...except语句<font colorblue>2、try...except...else语句<font colorblue>3、try...except...finally语句<font colorblue>4、raise语…