nginx快速入门

一、什么是Nginx


Nginx(engine x)是一个轻量级高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,其特点是占有内存少,并发能力强,事实上Nginx的并发能力在同类型的网页服务器中表现较好,Nginx是一个安装非常简单、配置文件非常简洁,(支持perl语法)、Bug非常少的服务。Nginx启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。
Nginx代码完全用C语言从头写成。官方数据测试表明能够达到高达50,000个并发连接的响应。

二、Nginx的作用

Http代理,反向代理:作为Web服务器最常用的功能之一,尤其是反向代理,反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。用户不需要知道目标服务器的地址,也无须在用户端做任何设定。

在这里插入图片描述

反向代理

在这里插入图片描述 

Nginx提供的负载均衡策略有2种:内置策略和扩展策略。
内置策略为轮询,加权轮询,Ip hash。
扩展策略,就天马行空,只有你想不到的没有你做不到的。

在这里插入图片描述 

加权轮询

在这里插入图片描述 

iphash对客户端的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。

在这里插入图片描述 

动静分离,在软件开发中,有些请求是需要后台处理的,有些请求是不需要经后台处理的(如:css、html、js 等文件),这些不需要后台处理的文件称为静态文件。让动态网站里的动态网页一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,就可以根据静态资源的特点将其做缓存操作。提高资源响应的速度。

在这里插入图片描述 

在这里插入图片描述 

三、Nginx的安装


下载nginx官网链接下载稳定版本。找系统对应的版本。

1. Windows下安装
启动Nginx
有很多启动方式
①直接双击nginx.exe,双击之后有一个黑色的弹窗一闪而过
②使用cmd命令窗口,切换到nginx目录下,输入命令nginx.exe,回车即可
2.检查nginx是否安装成功
在浏览器输入http://localhost/回车,出现以下页面说明安装成功!

 在这里插入图片描述

3.配置监听
nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口为80,如果80端口被占用可以修改为未被占用的端口即可。

 在这里插入图片描述

当我们修改了nginx的配置文件nginx.config时,不需要关闭nginx后重新启动nginx,只需要执行命令nginx -s reload即可让改动文件生效
4.关闭Nginx
如果使用cmd窗口启动nginx,关闭cmd窗口是不能结束nginx进程的
两种关闭nginx的方法:
输入nginx命令 nginx -s stop(快速停止nginx)或nginx -s quit(完整有序的停止nginx)
使用taskkil taskkill /f /t /im nginx.exe 

1.taskkil是用来终止进程的。
2. /f是强制终止
3. /t终止指定的进程和任何由此启动的子进程
4. /im示指定的进程名称

2.Linux下安装

1.安装gcc
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装:

yum install gcc-c++

2.PCRE pcer-devel安装

PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括Perl兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在Linux上安装pcre库,pcre-devel是使用pre开发的一个二次开发库,nginx也需要此库。命令:

yum install -y pcre pcre-devel

3.zlib安装

zlib库提供了很多种压缩和解压缩的方式,nginx使用zib对http包内的内容进行gzip,所以需要在CentOS上安装zlib库。

yum install -y zlib zlib-devel

4.OpenSSL安装
OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供丰富的应用程序供测试或其他目的的使用。Nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在CentOS上安装OpenSSL库。

yum install -y oppenssl oppenssl-devel

5.wget安装

yum install wget

6.下载nginx

wget http://nginx.org/download/nginx-1.20.2.tar.gz

7.解压(在root目录下)

tar -zxvf	nginx-1.20.2.tar.gz
cd nginx-1.20.2

在这里插入图片描述

8.配置

使用默认配置,在nginx根目录下执行,确保以上命令都执行

首先创建要安装的目录文件

mkdir -p /usr/local/nginx

 安装到指定目录下

./configure --prefix=/usr/local/nginx

编译安装

make && make install

查看安装路径

whereis nginx

3.Nginx目录结构

安装完Nginx后,Nginx的目录结构如图:

在这里插入图片描述

重点目录/文件:

  • conf/nginx.conf nginx配置文件
  • html 存放静态文件(html、css、js等)
  • logs 日志文件,存放日志文件
  • sbin/nginx 二进制文件,用于启动,停止Nginx服务

4.Nginx常用命令

进入nginx,sbin目录下

cd /usr/local/nginx/sbin

 查看版本

./nginx -v

检查配置文件的正确性

./nginx -t

启动Nginx服务

./nginx

停止Nginx服务

./nginx -s stop

安全退出Nginx服务

./nginx -s quit

查看nginx进程

./nginx -s reload	

配置环境变量

vim /etc/profile

追加:

PAHT=/usr/local/nginx/sbin:$JAVA_HOME/bin:$PATH

保存生效:

source /etc/profile

启动成功访问 服务器ip:80

注意:
如果连接不上,检查云服务器安全组是否开放端口,或者服务器防火墙是否开放端口!

相关命令

11. # 开启
12. service firewalld start
13. # 重启
14. service firewalld restart
15. # 关闭
16. service firewalld stop
17. # 查看防火墙规则
18. firewall-cmd --list-all
19. # 查看端口是否开放
20. firewall-cmd --query-port=8080/tcp
21. # 开放80端口
22. firewall-cmd --permanent --add-port=80/tcp
23. # 移除端口
24. firewall-cmd --permanent --remove-port=8080/tcp
25. # 重启防火墙(修改配置后要重启防火墙)
26. firewall-cmd --reload
27. # 参数解释
28. firewall-cmd:是Linux提供的操作firewall的一个工具
29. --permanent:表示设置为持久
30. --add-port:标识添加的端口 

5 Nginx配置文件结构

整体结构介绍
Nginx配置文件(cong/nginx.conf)整体分为三部分:

全局快 ( 和Nginx运行相关的全局配置)
events块 ( 和网络连接相关的配置)
http快(代理、缓存、日志记录、虚拟主机配置)
http全局快
Server块
Server全局块
location块
注意:http块中可以配置多个Server块,每个Server块中可以配置多个location块。

在这里插入图片描述

四Nginx具体应用


1.部署静态资源
Nginx可以作为静态web服务器来部署静态资源。静态资源 指在服务端真实存在并且能够直接展示的一些文件,比如常见的html文件、css文件、js文件、图片、视频等资源。
相对于Tomcat,Nginx处理静态资源的能力更加高效,所以在生产环境下,一般都会将静态资源部署到Nginx中。将静态资源部署到Nginx非常简单,只需要将文件复制到Nginx安装目录下的html目录中即可。 

server {listen 80;					# 监听端口server_name localhost;		# 服务器名称location /{					# 匹配客户端请求urlroot html;				# 指定静态资源根目录index index.html;		# 指定默认首页}
}

2.反向代理

  • 配置反向代理
  • server  {listen 82;server_name localhost;location /{proxy_pass http://192.168.81.129:8080;		#反向代理配置,将请求转发到指定服务}
    }
    

    在这里插入图片描述

    3.负载均衡
    早期的网站流量业务功能都比较简单,单台服务器就可以满足基本要求,但是随着互联网的发展,业务流量越来越大并且业务逻辑越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群,进行性能的水平扩展以及避免单点故障的出现。

    应用集群:将同一应用部署到多台机器上,组成应用集群,接收负载均衡器分发的请求,进行业务处理并返回效应数据
    负载均衡器:将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理

在这里插入图片描述

 配置负载均衡:

upstream targetserver{	# upstream指令可以定义一组服务器server 192.168.81.129:8080;server 192.168.81.129:8081;
}
server  { listen 80;server_name localhost;location /{proxy_pass http://targetserver;		#反向代理配置,将请求转发到指定服务}
}

3.负载均衡策略

名称说明
轮询默认方式
weight权重方式
ip_hash依据ip分配方式
least_conn依据最少连接方式
url_hash依据url分配方式
fair依据响应时间方式

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

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

相关文章

破解mysql用户的密码

假如mysql数据库中有一个 prod_blb 用户,你作为root管理员,想知道它的密码,又不想修改它的密码。这个时候就只能通过获取到 prod_blb 用户加密的密码进程破译 1、MYSQL加密方式 MYSQL数据库的认证密码有两种方式,MYSQL 4.1版本之…

matebook14安装vmware导致多屏协同失败

原因是我的matebook安装了虚拟机vmware。导致我的手机多屏协同失败。 禁用之后就可以了

华为智慧屏的四大核心功能

AI慧眼:1080P通话、AI健身、AI Kids 华为智慧屏搭载自动升降微光摄像头"慧眼",支持1080P高清视频通话,支持大屏呼叫大屏、大屏呼叫手机、手机呼叫大屏. AI健身方面,华为智慧屏将化身你的客厅私教,与北京体育…

华为系统和计算机,电脑手机合二为一 华为多屏协同让电脑与手机亲密互动

随着社会的不断发展,上班族们的生活节奏也在不断加快,移动办公更是成为了人们生活中所不可缺少的一部分。无论是咖啡厅还是地铁站,我们总能看到上班族们忙碌的身影。 但对于广大上班族来说,移动办公其实是一件非常不方便的事情&am…

【Leetcode -746.使用最小花费爬楼梯 -747.至少是其他数字两倍的最大数】

Leetcode Leetcode -746.使用最小花费爬楼梯Leetcode -747.至少是其他数字两倍的最大数 Leetcode -746.使用最小花费爬楼梯 题目:给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择…

华为智慧屏V55升级鸿蒙2,华为智慧屏s55和v55对比参数_华为智慧屏s55和v55哪个好...

华为智慧屏s55和v55都是二款非常受欢迎的电视产品型号,很多人在选择这二款产品时非常的纠结,那么华为智慧屏s55和v55到底哪个好呢?一起来看看华为智慧屏s55和v55参数对比吧~ 一、华为智慧屏s55和v55对比参数 1、华为智慧屏s55参数 功能参数内…

华为智慧屏鸿蒙评测,华为智慧屏S Pro体验:告诉你鸿蒙OS有多优秀?

华为智慧屏S Pro体验:告诉你鸿蒙OS有多优秀? 2021年03月03日 21:24作者:网络编辑:王动 分享 从华为这些年的产品发展路线可以看得出,物联网产品体系组建是华为未来的重点方向。而“电视”是物联网体系中重要的一环&…

华为智慧屏鸿蒙应用,华为智慧屏S Pro体验:告诉你鸿蒙OS有多优秀

原标题:华为智慧屏S Pro体验:告诉你鸿蒙OS有多优秀 从华为这些年的产品发展路线可以看得出,物联网产品体系组建是华为未来的重点方向。而“电视”是物联网体系中重要的一环,担当着客厅应用环境中的C位。因此,华为把投入…

非华为电脑实现华为一碰传、多屏协同安装指南

华为一碰传、多屏协同安装指南 000 安装多屏协同的前提:WIN10系统蓝牙适配器WIFI接收器(支持5G才能成功、2.4G的不成功) 000 安装一碰传的前提:WIN10系统NFC标签贴纸(网络购买) 001华为一碰传、多屏协同…

没有鸿蒙HarmonyOS,用这个软件也可以实现华为的多屏协助互动!

前几天华为发布了HarmonyOS 2不少小伙伴都应该知道了吧,相信有不少华为手机的小伙伴也应该体验到了,特别是多屏互动这个功能简直牛批到爆炸,而今天小七带来的这款软件,让你即使不用华为手机,华为电脑,也可以…

电脑系统没有自带的字体-楷体GB2312字体 免费版提供下载

楷体GB2312字体是一款电脑系统没有自带的字体。楷体GB2312字体如果没有,则会导致电脑中的某些软件显示不正常或者某些文档的文字显示不正常,它因执行GB2312-1980标准而得名,收字是6763个,是国标体,华军软件园提供下载地…

CSS3引入外部字体(苹方字体下载链接)

pingfang链接 : https://pan.baidu.com/s/1vyxkN-Edg17gVPHlnFoqsA 提取码:zwk0 CSS3引入代码: 等待引入的文件 font-face {font-family: 苹方黑体-准-简;src: url(../fonts/苹方黑体-准-简.ttf); } *{font-family: 苹方黑体-准-简; }

Android 字体ttf文件下载(含github下载地址)

含以下字体: github下载地址:https://github.com/Ice-Times/Android-ttf-download csdn下载地址:https://download.csdn.net/download/Ice_Times/12556432

LVGL中文字体制作

1、准备工作 lvgl原生不支持中文显示,但是lvgl官方提供了生成中文字体的工具。使用起来比较方便。LVGL支持的编码是UTF-8,而我们常用中文字体是GB2312。这就需要转换,大致的原理是,将现有字体中我们需要用的中文文字,…

用High-Logic FontCreator改进系统字体

我的windows11系统自带的微软雅黑字体,中文双引号是直引号而不是弯引号,而且缺少一些字,例如下面这个: 所以免不得要对这个字体进行一下改造。话说windows系统自带了一个“专用字符编辑程序”,但是这个程序实在要有很…

自动化测试经典面试题-定位不到元素

元素定位常见的面试相关问题 一、元素定位1、Selenium/Appium定位方法有几种?分别是?2、如何通过子元素定位父元素 二、元素定位不到1、定位不到元素是什么原因导致的?2、如何定位动态元素3、有的元素就加载页面上,但是你却定位不…

Android笔记--内存管理

内存(Memory)是计算机的重要部件,也称主存储器,它用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。Android中,内存是如何分配的?当启动一个android程序时,会启动一个dalvik vm进程&#xf…

eventfd 和 epoll 的结合使用

一.eventfd介绍 eventfd 是 Linux 的一个系统调用&#xff0c;创建一个文件描述符用于事件通知&#xff0c;自 Linux 2.6.22 以后开始支持。 接口及参数介绍 #include <sys/eventfd.h> int eventfd(unsigned int initval, int flags);eventfd() 创建一个 eventfd 对象&…

pyest+appium实现APP自动化测试

目录 01、appium环境搭建 2、搭建pythonpytestappium环境 3、安装pycharm搭建项目编写脚本 4、执行测试 绵薄之力 01、appium环境搭建 安装nodejs http://nodejs.cn/ 为什么要安装nodejs&#xff1f; 因为appium这个工具的服务端是由nodejs语言开发的 安装jdk&#x…

maxwell界面介绍

File文件 New新建&#xff08;快捷键CTRLN&#xff09; open打开&#xff08;选择open后可以选择各种可以打开的类型文件。包括其他软件CAD、老版本ansoft mxwl文件。以及Maxwell其他模块的文件。&#xff09; Open Examples打开范例&#xff08;与上效果相似&#xff0c;但是能…