nginx基本介绍(安装、常用命令、反向代理)

news2024/11/20 0:46:19

文章目录

  • 引言
  • 一、nginx是什么
  • 二、nginx的下载和安装
    • 1. 下载
    • 2. windows下安装
    • 3. 运行
    • 4. 外部服务器无法访问问题
  • 三、nginx的常用命令
  • 四、nginx.config
  • 五、FileZilla
    • 1. 什么是FileZilla
    • 2. FileZilla的下载和安装
  • 六、反向代理
    • 1. 什么是nginx的反向代理
    • 2. 反向代理工作流程
    • 3. 如何配置nginx反向代理
  • 总结

引言

在互联网的世界中,nginx(发音为“engine-x”)已经成为广受欢迎和使用的一款开源的高性能HTTP服务器和反向代理服务器。它以其简单易用、高效稳定的特点,成为许多网站和应用的首选。本文将为你详细介绍nginx的基本概念和功能,包括如何安装nginx、常用的命令以及如何利用nginx实现反向代理。无论是初次接触nginx的新手还是熟悉nginx的开发者,本文都将为你提供有价值的内容和实用的技巧。让我们一起深入了解nginx,发掘它的魅力吧!

一、nginx是什么

Nginx是一个开源的高性能HTTP和反向代理服务器,也可以用作邮件代理服务器和通用的TCP/UDP代理服务器。它的设计重点是高并发、高性能和低内存消耗,常用于提供静态内容、负载均衡和作为Web服务器。

Nginx具有以下功能和特点:

  1. 静态文件服务:作为一个Web服务器,Nginx可以处理静态文件的请求,通过快速地处理请求和发送静态内容来提供更好的性能。

  2. 反向代理:Nginx可以作为反向代理服务器,将客户端的请求转发到多个后端服务器,以提供负载均衡、缓存和安全性等功能。

  3. 动态内容处理:尽管Nginx主要用于处理静态文件,但它也可以与各种后端应用程序(如PHP、Python、Java等)配合使用,用于处理动态内容。

  4. 高性能:Nginx采用了异步、非阻塞的事件驱动架构,能够处理大量的并发连接,提供出色的性能。

  5. 低内存消耗:Nginx在处理大量并发连接时,使用的内存较少,因此能够提供更高的并发连接数和更好的性能。

  6. 配置灵活:Nginx的配置非常灵活,管理员可以根据需要进行各种配置和优化,以满足不同的需求。

总而言之,Nginx是一个高性能、灵活和可扩展的Web服务器和代理服务器,适用于各种场景,包括静态文件服务、反向代理、负载均衡和动态内容处理等。

二、nginx的下载和安装

1. 下载

nginx下载地址
在这里插入图片描述
去官网下载对应的系统版本就可以了

2. windows下安装

下载zip的压缩包,直接解压就可以使用了
在这里插入图片描述
找到安装目录
在这里插入图片描述
执行

ngnix -v

查看版本号
在这里插入图片描述
可以看到版本号代表安装成功

3. 运行

双击nginx.exe文件即可启动nginx
在这里插入图片描述
在本地浏览器访问127.0.0.1如果看到这个界面代表启动成功
我这里是改了下端口号为8088,默认是80的。
在这里插入图片描述

4. 外部服务器无法访问问题

在确保服务器上的nginx是正常启动的情况下,外部服务器无法访问,很可能是端口没有对外开放导致的。
这时我们需要去服务器中配置入站规则

这里以阿里云服务器为例:
打开控制台,找到安全组,配置规则
在这里插入图片描述
入口-手动添加
在这里插入图片描述
配置端口,默认是80
如果你的nginx配置中,你没有更改端口的话,这里就配置80/80即可
在这里插入图片描述
配置可访问的ip
0.0.0.0/0代表都可以访问你的服务器的这个端口,你也可以根据具体情况指定那个ip可以访问。
在这里插入图片描述
配置完保存即可,
此时再去浏览器访问你服务器的公网ip即可,显示如下所示,代表端口开发成功。
在这里插入图片描述

三、nginx的常用命令

命令解释
nginx -v显示 nginx 版本信息
nginx -t检查 nginx 配置文件语法是否正确
nginx -s start启动 nginx 服务
nginx -s stop停止 nginx 服务
nginx -s reload重新加载 nginx 配置文件
nginx -s quit优雅地停止 nginx 服务
nginx -s reopen重启所有打开的日志文件
nginx -s reload -squit重新加载 nginx 配置文件并优雅地停止旧的工作进程
nginx -s stop -wait停止 nginx 服务并等待旧的工作进程退出
nginx -c file指定使用的配置文件
nginx -g directives在命令行中设置全局配置指令
nginx -h显示帮助信息
nginx -p prefix设置前缀路径(在寻找配置文件时会使用该路径)
nginx -q在检查配置时关闭错误输出
nginx -V显示 nginx 的配置选项
nginx -s reopen重启所有打开的日志文件
nginx -s reload -squit重新加载 nginx 配置文件并优雅地停止旧的工作进程
nginx -s stop -wait停止 nginx 服务并等待旧的工作进程退出
nginx -c file指定使用的配置文件
nginx -g directives在命令行中设置全局配置指令

请注意,部分命令可能需要以管理员权限运行,否则可能无法成功执行。

四、nginx.config

nginx.confignginx的配置文件,用于配置nginx服务器的各种参数和选项。

一般而言,nginx.config 的配置选项可以分为以下几个部分:

  1. 全局配置选项

    • worker_processes: 指定工作进程的数量,用于处理客户端请求。
    • error_log: 指定错误日志文件的路径和级别。
    • events: 设置事件模型,包括使用的事件驱动器和连接数。
    • http: 指定http相关的配置选项。
  2. http配置选项

    • server: 配置虚拟主机,指定监听的IP地址和端口号。
    • location: 配置请求匹配规则和处理方式。
    • proxy_pass: 配置反向代理,将请求转发到指定的后端服务器。
    • root: 指定静态文件的根目录。
    • index: 指定默认的索引文件。
    • try_files: 指定查找文件的规则。

例如,下面是一个简单的nginx.config配置文件的示例:

worker_processes  1;
error_log  /var/log/nginx/error.log;
events {
    worker_connections  1024;
}
http {
    server {
        listen  80;
        server_name  example.com;
        location / {
            root  /var/www/html;
            index  index.html index.php;
        }
        location /api/ {
            proxy_pass  http://api.example.com;
        }
    }
}

在上面的配置中,指定了一个worker进程,设置了错误日志的路径和级别,设置了事件的连接数。
http部分,定义了一个虚拟主机,监听80端口,匹配规则为根路径和/api/路径。
根路径配置了根目录和默认的索引文件,/api/路径则配置了反向代理到后端服务器。

五、FileZilla

1. 什么是FileZilla

FileZilla是一个免费开源的FTP软件,用于上传和下载文件到服务器。它具有以下用途:

  1. 文件传输:通过FTP,FTPS和SFTP协议,可以将文件从本地计算机上传到服务器或者从服务器下载到本地计算机。

  2. 文件管理:可以在本地计算机和服务器之间浏览,编辑,复制,移动和删除文件。

  3. 网站维护:可用于管理远程服务器上的网站文件,可以轻松地更新网站内容,添加或删除文件和文件夹。

  4. 自动化:支持文件传输队列和批处理操作,可以设置计划任务,自动上传或下载文件,进行自动化的网站备份。

  5. 跨平台使用:可在Windows,Mac OS和Linux等多个操作系统上运行。

总之,FileZilla是一个功能强大的文件传输和管理工具,适用于需要频繁进行文件操作的网站管理员和开发人员。

2. FileZilla的下载和安装

FileZilla下载地址
在这里插入图片描述

选择对应的版本下载即可
windows版本下载下来之后,按照提示一步一步安装即可。
安装成功之后,填写远程主机ip,用户,密码,端口即可链接
在这里插入图片描述

六、反向代理

1. 什么是nginx的反向代理

Nginx的反向代理是指Nginx作为代理服务器,将客户端请求转发给后端的服务器。反向代理隐藏了后端服务器的真实IP地址,提高了服务器的安全性,并且可以负载均衡地分发请求到多个后端服务器上。

2. 反向代理工作流程

  1. 客户端向Nginx服务器发送请求。
  2. Nginx服务器接收到请求后,根据预先设定的规则和算法选择一个后端服务器来处理该请求。
  3. Nginx服务器将请求转发给选定的后端服务器。
  4. 后端服务器处理请求并生成响应。
  5. 后端服务器将响应返回给Nginx服务器。
  6. Nginx服务器将收到的响应再返回给客户端。

以下是一个符号形象的描述:

客户端             Nginx服务器             后端服务器
  |                      |                          |
  |  --------请求-------->|                          |
  |                      |                          |
  |  <-------响应--------|                          |
  |                      |                          |
  |            -----------选择后端服务器----------->
  |                      |                          |
  |            <---------发送请求到后端服务器---------
  |                      |                          |
  |                      |---处理请求并生成响应------>|
  |                      |                          |
  |                      |<------返回响应------------|
  |                      |                          |
  |            <---------返回响应到Nginx服务器---------
  |                      |                          |
  |  <--------返回响应-----|                          |
  |                      |                          |

通过这种反向代理方式,Nginx可以提供负载均衡、高可用性、缓存等功能,优化服务器的性能和稳定性。

3. 如何配置nginx反向代理

在nginx.conf配置文件中,可以使用location指令为反向代理配置路径和目标服务器。以下是一个示例配置,将所有来自本地8080端口的请求代理到目标服务器example.com。

http {
    server {
        listen 80;

        location / {
            proxy_pass http://example.com;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
}

在以上配置中,proxy_pass指令将请求转发到http://example.comproxy_set_header指令用于设置HTTP头部,将请求的原始主机和客户端IP地址传递给目标服务器。

可以使用location指令根据需要配置多个反向代理路径。每个location块可以设置不同的proxy_pass值来指定不同的目标服务器。例如,在以下配置中,将路径/api代理到http://api.example.com,将路径/app代理到http://app.example.com

http {
    server {
        listen 80;

        location /api {
            proxy_pass http://api.example.com;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }

        location /app {
            proxy_pass http://app.example.com;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
}

需要注意的是,以上示例仅展示了基本的反向代理配置。根据实际需求,可能需要添加其他配置参数,如负载均衡、缓存、SSL等。详细配置可参考nginx官方文档。

每次修改完nginx.config文件,输入:

nginx -s reload

重新加载配置文件。

总结

好啦,这篇笔记我们对nginx进行了基本介绍,并学习了如何安装、常用命令以及如何配置反向代理。Nginx作为一个高性能的Web服务器和反向代理服务器,具有出色的性能和稳定性,被广泛应用于互联网领域。无论是作为Web服务器还是反向代理服务器,nginx都提供了丰富的功能和灵活的配置选项,使我们能够根据实际需求进行定制。希望通过本文的介绍,您对nginx有了更深入的了解,并能够在实际应用中灵活运用。如果您有任何问题或疑惑,欢迎留言交流。感谢阅读!

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

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

相关文章

2023-8-23 连通块中点的数量

题目链接&#xff1a;连通块中点的数量 #include <iostream>using namespace std;const int N 100010;int n, m; int p[N], Size[N], idx;int find(int x) {if(p[x] ! x) p[x] find(p[x]);return p[x]; }int main() {cin >> n >> m;for(int i 1; i <…

七、任务优先级和Tick

1、任务与中断的优先级 (1)相同优先级任务轮流执行。 (2)高优先级任务打断低优先级任务。 (3)中断可以打断所有优先级的任务。 2、任务优先级 (1)优先级的取值范围是&#xff1a;0~(configMAX_PRIORITIES – 1)&#xff0c;数值越大优先级越高。 (2)FreeRTOS会确保最高优…

API 网关基础

目录 一、网关概述二、网关提供的功能三、常见网关系统3.1 Netflix Zuul3.2 Spring Cloud Gateway3.3 Kong3.4 APISIX3.5 Shenyu 一、网关概述 API网关是一个服务器&#xff0c;是系统的唯一入口。 从面向对象设计的角度看&#xff0c;它与外观模式类似。API网关封装了系统内部…

小白带你学习linux的LVS集群(三十六)

一、集群概述 1、负载均衡技术类型 四层负载均衡器 也称为 4 层交换机&#xff0c;主要通过分析 IP 层及 TCP/UDP 层的流量实现基于 IP 加端口的负载均衡&#xff0c;如常见的 LVS、F5 等&#xff1b; 七层负载均衡器 也称为 7 层交换机&#xff0c;位于 OSI 的最高层&#…

机器人力控入门——牛顿欧拉法动力学建模

建立机器人的动力学模型是完成力控的基础&#xff0c;常用的动力学模型建模法有拉格朗日法和牛顿-欧拉法&#xff0c;其中牛顿-欧拉采用递推形式&#xff0c;计算更为简便&#xff0c;使用也更为广泛。本文就来介绍下牛顿-欧拉的动力学建模方法&#xff0c; PS&#xff0c;网上…

C++--动态规划两个数组的dp问题

1.最长公共子序列 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新的字符串…

day 37 | ● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零

1049. 最后一块石头的重量 II 与前一道分割等和子集的思路差不多&#xff0c;都是01背包问题。因为是采用滚动数组的形式&#xff0c;所以必须要倒序遍历才可以。 dp[i]代表着在i的限制下最大的承重。所以另一半就是all - dp【all / 2】 func lastStoneWeightII(stones []int…

Fabric.js 元素选中状态的事件与样式

本文简介 带尬猴&#xff01; 你是否在使用 Fabric.js 时希望能在选中元素后自定义元素样式或选框&#xff08;控制角和辅助线&#xff09;的样式&#xff1f; 如果是的话&#xff0c;可以放心往下读。 本文将手把脚和你一起过一遍 Fabric.js 在对象元素选中后常用的样式设置…

git 把项目托管到 码云出现的错误集合

分享一下我git项目时碰见的错误 1、error: could not lock config file D:/orcad/Cadence/SPB_Data/.gitconfig: No suchfile or directory 在下载git后设置用户名、邮箱时会出现的错误 需要去修改环境变量&#xff0c;这个之前写好了&#xff0c;可以跳转看看 Git配置error:…

计算机竞赛 基于Django与深度学习的股票预测系统

文章目录 0 前言1 课题背景2 实现效果3 Django框架4 数据整理5 模型准备和训练6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于Django与深度学习的股票预测系统 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff…

js将搜索的关键字加颜色

js将搜索的关键字加颜色 使用正则匹配关键字并加入span标签&#xff0c;页面渲染时使用v-html渲染即可 // 文本框内容 let searchCont 测试;const reg new RegExp((${searchCont.value}), g); let data 图片保存测试A; data data.replace(reg, <span style"color:…

【N年测试总结】测试的分类

一、概述 测试的分类一般有按照测试的内容进行划分和按照测试阶段划分两种大的方式。 按测试内容划分 1、需求测试 2、单元测试 3、接口测试 4、功能测试 5、UI自动化测试 6、性能测试 7、测试开发 按测试阶段划分 1、需求测试 2、单元测试 3、集成测试 4、系统测试 5、验…

C 连接MySQL8

Linux 安装MySQL 8 请参考文章&#xff1a;Docker 安装MySQL 8 详解 Visual Studio 2022 编写C 连接MySQL 8 C源码 #include <stdio.h> #include <mysql.h> int main(void) {MYSQL mysql; //数据库句柄MYSQL_RES* res; //查询结果集MYSQL_ROW row; //记录结…

回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效…

【学会动态规划】最长递增子序列的个数(28)

目录 动态规划怎么学&#xff1f; 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后&#xff1a; 动态规划怎么学&#xff1f; 学习一个算法没有捷径&#xff0c;更何况是学习动态规划&#xff0c; 跟我…

Spring Boot 事务和事务传播机制

1. 为什么需要事务? 事务定义 将一组操作封装成一个执行单元 (封装到一起)&#xff0c;这一组的执行具备原子性, 那么就要么全部成功&#xff0c;要么全部失败. 为什么要用事务? 比如转账分为两个操作: 第一步操作:A 账户-100 元。 第二步操作:B账户 100 元。 如果没有事务&a…

【WinForm】WebView2-个性化浏览器-桌面程序开发详解

这是一个桌面程序上的浏览器&#xff0c;是用插件WebView2开发的浏览器桌面程序&#xff0c;功能体验堪比Edge浏览器&#xff0c;相比使用Chrome内核插件开发浏览器来说&#xff0c;还是用插件WebView2开发来得简单一些&#xff0c;接下来讲一讲实现过程。 开发之前&#xff0c…

Centos7部署Python程序详解

Centos7服务器部署Python 本文章前半部分为部署过程&#xff0c;后半部分为部署中碰到的问题及解决方案&#xff0c;仅供参考&#xff01;&#xff01;&#xff01;&#xff0c;本文示例为部署py文件为例。 部署步骤&#xff1a; 登录centos7服务器后 1.查看python版本 py…

Kotlin 高阶函数详解

高阶函数 在 Kotlin 中&#xff0c;函数是一等公民&#xff0c;高阶函数是 Kotlin 的一大难点&#xff0c;如果高阶函数不懂的话&#xff0c;那么要学习 Kotlin 中的协程、阅读 Kotlin 的源码是非常难的&#xff0c;因为源码中有太多高阶函数了。 高阶函数的定义 高阶函数的…

CGAL 点云分类

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 点云分类一直是点云数据应用的永恒课题,它包含很多,如地面点分类、建筑物分类、植被分类等。CGAL中也为我们提供了一种点云分类的方式,其具体的计算过程如下所述: 首先,使用点云中所携带的一些几何特征来对数据…