【Nginx基础与应用】

news/2024/11/24 13:44:22/

文章目录

  • Nginx基础与应用
  • 1 Nginx 概述
    • 1.1 介绍
    • 1.2 下载与安装
    • 1.3 目录结构
  • 2 Nginx 命令
  • 3 Nginx 配置文件结构
  • 4 Nginx 具体应用
    • 4.1 部署静态资源
    • 4.2 反向代理
    • 4.3 负载均衡(基于反向代理实现)

Nginx基础与应用

1 Nginx 概述

1.1 介绍

Nginx是一款轻量级的web服务器/反向代理服务器电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:PaM6nep)开发的,第一个公开版本0.1.0发布于2004年10月4日。

官网:https://nginx.org/

1.2 下载与安装

可以到Nginx官方网站下载Nginx的安装包,地址为:https://nginx.org/en/download.html,点击即可下载。

1

安装过程:

  1. 安装依赖包 yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

  2. Linux中下载Nginx安装包 wget https://nginx.org/download/nginx-1.16.1.tar.gz

    若不存在wget命令需进行安装yum install wget;或者在windows系统中下载,上传到Linux系统中

  3. 解压 tar -zxvf nginx-1.16.1.tar.gz

  4. 进入解压文件cd nginx-1.16.1

  5. 配置 安装到指定文件目录中./configure --prefix=/usr/local/nginx

  6. 编译及安装make && make install

1.3 目录结构

重点目录/文件:

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

2

2 Nginx 命令

  • 查看版本

    在nginx/sbin目录下执行./nginx -v

  • 检查配置文件正确性

    在启动Nginx服务之前,可以先检查一下conf/nginx.conf文件配置的是否有错误,命令如下:
    在nginx/sbin目录下执行./nginx -t

  • 启动与停止

    1. 启动Nginx服务使用如下命令:
      ./nginx
    2. 停止Nginx服务使用如下命令:
      ./nginx -s stop
    3. 启动完成后可以查看Nginx进程:
      ps -ef | grep nginx
  • 重新加载配置文件

    ./nginx -s reload

简化命令操作,将usr/local/nginx/sbin添加为环境变量:

-vim /etc/profile# 追加系统路径环境变量
PATH = /uer/local/nginx/sbin:source /etc/profile# 之后即可在任何目录执行nginx命令
nginx -s reload

3 Nginx 配置文件结构

Nginx配置文件(conf/nginx.conf)整体分为三部分:

  • 全局块

    和Nginx运行相关的全局配置

  • events块

    和网络连接相关的配置

  • http块

    代理、缓存、日志记录、虚拟主机配置

    • http全局块
    • Server块(可有多个)
      • Server全局块
      • location块(可有多个)

3

注意:http块中可以配置多个Server块,每个Server块中可以配置多个location块。

4 Nginx 具体应用

4.1 部署静态资源

Nginx可以作为静态web服务器来部署静态资源。静态资源指在服务端真实存在并且能够直接展示的一些文件,

比如常见的html页面、css文件、js文件、图片、视频等资源。

相对于Tomcat,Nginx处理静态资源的能力更加高效,所以在生产环境下,一般都会将静态资源部署到Nginx中。

将静态资源部署到Nginx非常简单,只需要将文件复制到Nginx安装目录下的html目录中即可。

nginx.conf配置文件设置:

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

4.2 反向代理

  • 正向代理
    是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。

    正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。

    正向代理一般是在客户端设置代理服务器,通过代理服务器转发请求,最终访问到目标服务器。

    4

  • 反向代理
    反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。

    用户不需要知道目标服务器的地址,也无须在用户端作任何设定。(多用户统一访问入口)

    5

  • 配置反向代理

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

    6

4.3 负载均衡(基于反向代理实现)

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

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

7

配置负载均衡:

upstream targetserver{	#upstream指令可以定义一组服务器server 192.168.138.101:8080;server 192.168.138.101:8081;
}
server{listen 8080;server_name localhost; #192.168.138.100location / {proxy_pass http://targetserver;}
}

负载均衡策略:

名称说明
轮询默认方式,依次轮回
weight权重方式,按比例执行
ip_hash依据ip分配方式
least_conn依据最少连接方式
url_hash依据url分配方式
fair依据响应时间方式
upstream targetserver{	#upstream指令可以定义一组服务器# 权重server 192.168.138.101:8080 weight=10;server 192.168.138.101:8081 weight=5;
}

资料来源:黑马程序员-瑞吉外卖项目-Nginx课程


http://www.ppmy.cn/news/583661.html

相关文章

跟着AIGC学Linux:简介(一)

文章目录 1.Linux内核的历史2.基本概念3.发行版4.Linux应用领域5.Linux VS Windows横向对比表格: 1.Linux内核的历史 Linux内核最初由一位名叫Linus Torvalds的芬兰计算机科学家于1991年创建。当时,Torvalds是一名赫尔辛基大学的学生,他在寻…

mysql数据库varchar,能存多少个中文字。 ---浅谈字符与字节的区别

最近, 在存商品名字的长度, 给了varchar(20), 那这个20到底是商品名称汉字长度还是字节长度呢 这里会涉及到两个概念, 那就是字符和字节 字节(Byte): 是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位&#xff0c…

Linxu三剑客——Linux awk命令详解

Linux 系统中有一个功能更加强大的文本数据处理工具,就是 awk。它诞生于 20 世纪 70 年代末期,这也许是它影响了众多 Linux 用户的原因之一。 曾有人推测 awk 命令的名字来源于 awkward 这个单词。其实不然,此命令的设计者有 3 位&#xff0…

IDEA创建maven工程JDBC连接MySQL数据库中的遇到的问题以及相应的解决方案

首先创建一个maven工程 然后点击进入pom.xml文件&#xff0c;输入安装依赖。 输入数据库配置文件原码&#xff1a; <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.49</version>…

荣耀电脑怎么用U盘重装系统?荣耀电脑用U盘重装Win10系统教程

荣耀电脑怎么用U盘重装系统&#xff1f;用户想用U盘来给荣耀电脑重装Win10系统&#xff0c;但是不知道怎么操作才能完成Win10系统的重装&#xff0c;这时候用户需要准备一个大于8G的U盘&#xff0c;还有一个能够正常联网的荣耀电脑&#xff0c;最后根据小编分享的荣耀电脑用U盘…

CVE-2019-0708漏洞,kali的msf中模块利用

0x00 漏洞描述 2019年5月14日&#xff0c;微软发布了本月安全更新补丁&#xff0c;其中包含一个RDP&#xff08;远程桌面服务&#xff09;远程代码执行漏洞的补丁更新&#xff0c;对应CVE编号&#xff1a;CVE-2019-0708&#xff0c;相关信息链接&#xff1a; https://portal.…

HR小姐姐都能学会的2021最新最全云计算运维学习专栏

我是互联网老辛,关注我吧,给自己每天的进步找一个机会和理由,不要被无效信息淹没,免除知识焦虑 建议关注收藏,本文会持续更新; 前言 后台很多粉丝问,学习运维需要学习哪些内容? 我结合21年的招聘要求,以及各大公司的反馈整理了以下学习路线。 注意: 本路线是从零基…

Kali Linux-SET社会工程学攻击

前言 严正声明&#xff1a;本文仅限于技术讨论与分享&#xff0c;严禁用于非法途径。 社会工程攻击&#xff0c;是一种利用“社会工程学” (Social Engineering)来实施的网络攻击行为。比如免费下载的软件中捆绑了流氓软件、免费音乐中包含病毒、钓鱼网站、垃圾电子邮件中包括…