Nginx入门与应用

news/2024/12/29 10:42:18/

Nginx

  • Nginx概述
    • Nginx介绍
    • Nginx下载和安装
      • windows
      • Linux
    • Nginx目录结构
  • Nginx命令
    • 查看版本
    • 检查配置文件正确性
    • 启动和停止
    • 重新加载配置文件
  • Nginx环境变量(Linux)
  • Nginx配置文件结构
  • Nginx具体应用
    • 部署静态资源
    • 反向代理
    • 负载均衡

Nginx概述

Nginx介绍

Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/ POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。
Nginx是由伊戈尔.赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。
官网:https://nginx.org/

Nginx下载和安装

windows

下载地址https://nginx.org/en/download.html
在这里插入图片描述

Linux

1、安装依赖包

yum -y install gcc pcre-devel zlib-devel openssl openssl-devel 

2、下载Nginx安装包

wget https://nginx.org/download/nginx-1.16.1.tar.gz

*注意
在这里插入图片描述
先执行

yum install wget

3、解压

 tar -zxvf nginx-1.16.1.tar.gz

4、 进入目录

cd nginx-1.16.1

5、配置安装路径

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

*注意
可以先创建这个目录

mkdir -p /usr/local/nginx

6、 编译并且安装

make && make install

Nginx目录结构

在这里插入图片描述

*注意
展示树结构

yum install tree

重点目录/文件:

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

Nginx命令

查看版本

在/usr/local/nginx/sbin目录下

./nginx -v

检查配置文件正确性

在启动Nginx服务之前,可以先检查一下conf/nginx.conf文件配置的是否有错误
在/usr/local/nginx/sbin目录下

./nginx -t

在这里插入图片描述

启动和停止

  • 启动Nginx服务使用如下命令:
    在/usr/local/nginx/sbin目录下
./nginx

默认80端口,确认关闭防火墙后,可访问如下页面:
在这里插入图片描述
*关闭防火墙(慎用)

systemctl stop firewalld

*启动成功后,会产生临时文件及日志文件
在这里插入图片描述
*nginx.pid文件
在这里插入图片描述

  • 停止Nginx服务使用如下命令:
    在/usr/local/nginx/sbin目录下
./nginx -s stop
  • 启动完成后可以查看Nginx进程:
ps -ef| grep nginx

在这里插入图片描述

重新加载配置文件

当修改Nginx配置文件后,需要重新加载才能生效,可以使用下面命令重新加载配置文件:

./nginx -s reload

Nginx环境变量(Linux)

第一步:

vim /etc/profile

第二步:

PATH=$JAVA_HOME/bin:$PATH
追加为
PATH=/usr/local/nginx/sbin:$JAVA_HOME/bin:$PATH

第三步:

source /etc/profile

Nginx配置文件结构

文件地址:/usr/local/nginx/conf/nginx.conf
在这里插入图片描述

  • 全局块
    和Nginx运行相关的全局配置

  • Events块
    和网络连接相关的配置

  • Http块
    代理,缓存,日志记录,虚拟主机配置。
    http块中可以配置多个Server块,每个Server块中可以配置多个location块。

  • http全局块

  • Server块

  • Server全局块

  • Location块

Nginx具体应用

部署静态资源

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

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

反向代理

  • 正向代理
    是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
    正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。
    正向代理一般是在客户端设置代理服务器,通过代理服务器转发请求,最终访问到目标服务器。
    在这里插入图片描述

  • 反向代理
    反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。
    用户不需要知道目标服务器的地址,也无须在用户端作任何设定。
    在这里插入图片描述

  • 举个栗子:你买东西的时候找代理人帮你去买就是正向代理,找代理商卖给你东西就是反向代理,厂商就是web服务器,代理商就是nginx反向代理服务器

  • 配置反向代理

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

在这里插入图片描述

负载均衡

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

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

  • 负载均衡器:将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理
    在这里插入图片描述

  • 配置负载均衡

upstream targetserver{ #upstream指令可以定义一组服务器server 192.168.138.101:8080;server 192.168.138.101:8081;
}
server {listen       8080;server_name  localhost;location / {proxy_pass   http://targetserver;}
}
  • 负载均衡策略

    weight(默认为1,数值越大越多)
upstream targetserver{ #upstream指令可以定义一组服务器server 192.168.138.101:8080 weight=10;server 192.168.138.101:8081 weight=5;
}

如有不足,请多指教,
未完待续,持续更新!
大家一起进步!


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

相关文章

【数据结构入门】-线性表之顺序表(1)

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【数据结构】 从今天开始,就正式进入数据结构的大门了,把握机会,好好学习,加油。 本文目录…

【微服务】Eureka注册中心

本系列介绍的是Spring Cloud中涉及的知识点,如有错误欢迎指出~ 一.引子 假如我们的服务提供者user-service部署了多个实例,如图: 大家思考几个问题: 问题一:order-service在发起远程调用的时候,该如何得知…

【leetcode合集】如何知道自己是否掌握了数组与链表?试试这几道题目吧!

目录 1.数组题目合集 1.1 leetcode.27 移除元素 1.2 leetcode.26 删除有序数组中的重复项 1.3 leetcode.88 合并两个有数数组 2.链表题目合集 2.1 leetcode.203 移除链表元素 2.2 leetcode.206 反转链表 2.3 leetcode.876 链表的中间结点 2.4 牛客 链表中倒数第k个结点…

1、认识IntelliJ IDEA

文章目录1、认识IntelliJ IDEA1.1 JetBrains公司介绍1.2 IntelliJ IDEA介绍1.3 IDEA的主要优势(对比Eclipse)1.3.1 功能强大1.3.2 符合人体工程学1.4 IDEA的下载【尚硅谷】idea实战教程-讲师:宋红康 生活是属于每个人自己的感受,不…

大数据技术之Hadoop(MapReduce)

第1章 MapReduce概述 1.1 MapReduce定义 MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个H…

2023新春祝福html代码,包你学会

前言大家新年好!今天是年三十,在这个充满喜悦和欢乐的节日里,祝大家新年快乐。不论你在外面过的风生水起还是不尽人意,回到家一家人团团聚聚才是最好的。进入正题,我们作为IT民工,我们要用自己的方式表达对…

客快物流大数据项目(一百零五):启动ElasticSearch

文章目录 启动ElasticSearch 一、启动ES服务端 二、​​​​​​​启动Kibana 启动ElasticSearch

LeetCode刷题笔记 - JavaScript(三)

文章目录1.剑指 Offer 59 - I. 滑动窗口的最大值1.剑指 Offer 43. 1~n 整数中 1 出现的次数剑指 Offer 59 - I. 滑动窗口的最大值 剑指 Offer 43. 1~n 整数中 1 出现的次数 1.剑指 Offer 59 - I. 滑动窗口的最大值 给定一个数组 nums 和滑动窗口的大小 k…