Nginx入门与应用

news2024/9/28 21:18:58

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 / {                        #匹配客户端请求url
            root   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.coloradmin.cn/o/174838.html

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

相关文章

Linux系统——基础IO

要努力,但不要着急,繁花锦簇,硕果累累,都需要过程! 目录 1.文件基础必备概念 2.文件系统调用接口 1.open && close 2.write 3.read 3.文件描述符fd 3.1什么是文件描述符 3.2文件描述符意义 3.3文件描述符的分配…

【C++】map和set的模拟实现

​🌠 作者:阿亮joy. 🎆专栏:《吃透西嘎嘎》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉红黑树的…

一个线程如何处理多个连接?(非阻塞IO)

从BIO到NIO的转变 五种IO模型BIO的缺陷非阻塞非阻塞IO(NIO)非阻塞读非阻塞写非阻塞IO模型php NIO 实现适用场景什么是C10k问题?C10K问题的由来五种IO模型 在《UNIX 网络编程》一书中介绍了五种IO模型: 分别是 BIO,NIO…

无线电基础电路 > RLC阻尼系数计算仿真

随机搭建电路如下图所示&#xff1a; 阻尼系数的希腊字母符号“ ζ ”读作泽塔。 阻尼系数ζ (R/2) * √C/L 1000/2 * √0.00001 1.58 包括三种情况&#xff1a; ζ>1&#xff1a;过阻尼&#xff0c;频响不利落&#xff0c;需要较长时间才能消失。 ζ<1&#xff…

MinIO基本使用(实现上传、下载功能)

MinIO基本使用&#xff08;实现上传、下载功能&#xff09;1.简介2.下载和安装3.启动服务端4.创建User和Bucket4.1 创建User4.1.1 生成accessKey和secretKey4.2 创建Bucket5.在SpringBoot中使用MinIO5.1 引入依赖5.2 配置文件定义5.3 定义实体类5.4 定义业务类5.5 定义测试类5.…

vivado中block design遇到的error总结

Error1.[BD 41-1356] Address block </processing_system7_0/S_AXI_HP0/HP0_DDR_LOWOCM> is not mapped into </axi_vdma_0/Data_MM2S>. Please use Address Editor to either map or exclude it. 修改方法. a、点击Address Editor. b、在Address Editor页面右击失…

【Ajax】了解Ajax与jQuery中的Ajax

一、了解Ajax什么是AjaxAjax 的全称是 Asynchronous Javascript And XML&#xff08;异步 JavaScript 和 XML&#xff09;。通俗的理解&#xff1a;在网页中利用 XMLHttpRequest 对象和服务器进行数据交互的方式&#xff0c;就是Ajax。2. 为什么要学Ajax之前所学的技术&#xf…

使用MQTT fx测试云服务器的 mosquitto 通讯

文章目录一.MQTT.fx介绍二.MQTT.fx安装教程三.使用MQTT.fx测试云服务器的 mosquitto 通讯一.MQTT.fx介绍 MQTT.fx是一款基于Eclipse Paho&#xff0c;使用Java语言编写的MQTT客户端工具。支持通过Topic订阅和发布消息&#xff0c;用来前期和物理云平台调试非常方便。 二.MQTT…

【数据结构——顺序表的实现】

前言&#xff1a; 在之前我们已经对复杂度进行的相关了解&#xff0c;因此现在我们将直接进入数据结构的顺序表的相关知识的学习。 目录1.线性表2.顺序表2.1概念及结构2.2 接口实现2.2.1.打印顺序表2.2.2初始化顺序表2.2.3.容量的检查2.2.4.销毁顺序表2.2.5.尾插操作2.2.6.尾删…

Ubuntu下的LGT8F328P MiniEVB Arduino开发和烧录环境

基于 LGT8F328P LQFP32 的 Arduino MiniEVB, 这个板型资料较少, 记录一下开发环境和烧录过程以及当中遇到的问题. 关于 LGT8F328P 芯片参数 8位RISC内核32K字节 Flash, 2K字节 SRAM最大支持32MHz工作频率 集成32MHz RC振荡器集成32KHz RC振荡器 SWD片上调试器工作电压: 1.8V…

C语言文件操作(3)

TIPS 1. 文件是不是二进制文件&#xff0c;不是后缀说了算&#xff0c;而是内容说了算 2. 文件的随机读写 文件的随机读写也就是说我指哪打哪 fseek() 人为调整指针指向的位置 1. 根据文件指针FILE*的当前位置和你给出的偏移量来让它这个文件指针呢定位到你想要的位置上…

Flutter 这一年:2022 亮点时刻

回看 2022&#xff0c;展望 Flutter Forward 2022 年&#xff0c;我们非常兴奋的看到 Flutter 社区持续发展壮大&#xff0c;也因此让更多人体验到了令人难以置信的体验。每天有超过 1000 款使用 Flutter 的新移动应用发布到 App Store 和 Google Play&#xff0c;Web 平台和桌…

实战打靶集锦-002-SolidState

**写在前面&#xff1a;**谨以此文纪念不完美的一次打靶经历。 目录1. 锁定主机与端口2. 服务枚举3. 服务探查3.1 Apache探查3.1.1 浏览器手工探查3.1.2 目录枚举3.2 JAMES探查3.2.1 搜索公共EXP3.2.2 EXP利用3.2.2.1 构建payload3.2.2.2 netcat构建反弹shell3.2.3 探查JAMES控…

三十一、Kubernetes中Service详解、实例第一篇

1、概述 在kubernetes中&#xff0c;pod是应用程序的载体&#xff0c;我们可以通过pod的ip来访问应用程序&#xff0c;但是pod的ip地址不是固定的&#xff0c;这也就意味着不方便直接采用pod的ip对服务进行访问。 为了解决这个问题&#xff0c;kubernetes提供了Service资源&…

NX二开ufun函数UF_MODL_ask_curve_points(获取曲线信息)

根据曲线tag&#xff0c;返回曲线相关信息&#xff1a;弦宽容、弧度、最大步长、点数组的点。 实例返回结果截图如下&#xff1a; 实例创建曲线截图如下&#xff1a; 1、函数结构 int UF_MODL_ask_curve_points &#xff08;tag_t curve_id&#xff0c; double ctol&#xf…

【SpringCloud19】SpringCloud Alibaba Sentinel实现熔断与限流

1.概述 官网 中文文档 1.1 是什么 一句话解释&#xff0c;之前我们讲解过的Hystrix 1.2 怎么下 下载网址 1.3 作用 1.4 如何使用 官网学习 服务使用中的各种问题&#xff1a; 服务雪崩服务降级服务熔断服务限流 2.安装Sentinel控制台 2.1 组成部分 核心库&#x…

Golang之实战篇(1)

"千篇一律&#xff0c;高手寂寞。几十不惑&#xff0c;全都白扯"上篇介绍了golang这门新的语言的一些语法。那么我们能用golang简单地写些什么代码出来呢&#xff1f;一、猜数字这个游戏的逻辑很简单。系统随机给你生成一个数&#xff0c;然后读取你猜的数字&#xf…

老杨说运维 | AIOps如何助力实现全面可观测性(上)

前言&#xff1a; 嗨&#xff0c;今天是大年三十&#xff0c;大家是不是已经在家坐享团圆之乐了&#xff1f;还是说在奔向团圆的路上呢&#xff1f;不论如何&#xff0c;小编先祝大家新年如意安康&#xff0c;平安顺遂~ 熟悉我们的朋友肯定都知道&#xff0c;关于《老杨说运维…

30.字符串处理函数

文章目录1.测字符串长度函数2.字符串拷贝函数1.strcpy函数2.strncpy函数3.字符串追加函数1.strcat函数2.strncat函数4.字符串比较函数1.strcmp函数2.strncmp函数5.字符查找函数1.strchr函数2.strrchr函数6.字符串匹配函数7.空间设定函数8.字符串转换数值9.字符串切割函数strtok…

【Java开发】Spring Cloud 04 :服务治理Nacos

本章节正式进入 Spring Cloud 环节了&#xff0c;首先介绍微服务架构中一个最重要的原理概念&#xff1a;服务治理&#xff0c;在概念讲解之后&#xff0c;讲解介绍 Nacos 服务注册中心的体系结构。1 服务治理1.1 服务治理介绍首先通过一个例子告诉你服务治理解决了什么问题。比…