概述

异步非阻塞的高性能HTTP和反向代理服务器

nginx的运行架构

1、Master进程

启动检查nginx.conf是否正确

根据配置文件创建、监控worker进程的数量和状态

监听socket,接受client发起的请求,然后worker竞争抢夺连接,获胜的worker可以相应请求

接收管理员发送的nginx的信号,并将信号通知给worker

2、Worker进程

实际处理client网络请求

接受master进程发出的nginx的信号

安装

1、安装nginx的yum源

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

  

2、使用yum install nginx

3、检查nginx安装

默认安装到/etc/nginx目录下

同时也帮我们在/usr/sbin/nginx 创建环境变量,我们可以直接使用nginx命令

nginx管理命令

1、nginx  -help

2、nginx -V 查看当前nginx安装的模块插件

3、nginx -v查看nginx的版本

4、nginx -t 检查nginx的配置文件是否合法

5、nginx -s 给nginx发送信号 stop quit reopen reload

我们看到执行reload信号,master进程不变,但是worker进程重启了

6、重复启动nginx会报错,因为80端口已经被占

7、当然也可以用systemctl命令来操作nginx

8、查看Nginx的的rpm包

nginx的配置文件

1、全局配置

user  nginx;
worker_processes auto; error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;

 

2、性能配置文件

3、http请求相关配置

4、Include语法 导入外部的配置文件,主要使用场景是导入server配置文件

5、默认的网站配置在这里

6、server配置,Server标签主要是一个具体某一个网站的请求和响应

7、Loction 用于匹配网站不同的url的路径

可以看下这域名怎么和servername进行匹配

配置虚拟主机

1、基于ip的单虚拟主机

在HTTP区域中,设置一个server标签即可

虚拟主机的子配置文件

创建一个配置文件

配置文件内容

创建对应的资源文件

此时大家要注意看我的配置文件的中server配置、资源文件路径、和实际的页面请求的url

访问测试网页

访问测试文本

访问测试图片

测试非文本文件

如果是非文本文件和图片文件,nginx会直接让你下载

查看nginx的访问日志

查看nginx的错误日志

基于多端口的虚拟主机

我们做了一个配置

出错端口permisson failed

但是我们启动nginx确失败了

此时我们需要这样解决

然后执行

我们在再次启动nginx,可以看到nginx已经启动成功,端口已经正常绑定

测试文本文件

测试图片文件

测试网页文件

测试其他文件

基于多ip的虚拟主机

1、首先配置多ip

2、配置一个配置文件

配置文件内容如下

反向代理实战

我们先用django写一个web程序,用来做反向代理测试

并在django中获取源ip地址

然后客户端访问下这个django的程序,我们看到程序已经正常返回

查看django打印的客户端地址

Starting development server at http://192.168.214.1:8090/

Quit the server with CTRL-BREAK.

REMOTE_ADDR:192.168.214.1

HTTP_X_REAL_IP:该元素存在

[27/Aug/2023 16:28:12] "GET /test/ HTTP/1.1" 200 19

REMOTE_ADDR:192.168.214.10

HTTP_X_REAL_IP:该元素存在

[27/Aug/2023 16:28:20] "GET /test/ HTTP/1.0" 200 19

C:\cosdtplatm\django2\app1\views.py changed, reloading.

Watching for file changes with StatReloader

  

REMOTE_ADDR:192.168.214.1   客户端A,不过nginx代理打印出来的ip地址,此时这个地址是真实的客户端的地址,同样我们看到这个地址是空:HTTP_X_REAL_IP

REMOTE_ADDR:192.168.214.10  客户端A,过nginx代理打印出来的ip地址,此时这个地址的nginx地址,同样我们看到这个地址是空:HTTP_X_REAL_IP

下面我们修改下nginx的配置

再次访问

Django version 3.2.20, using settings 'django2.settings'
Starting development server at http://192.168.214.1:8090/
Quit the server with CTRL-BREAK.
REMOTE_ADDR:192.168.214.10
HTTP_X_REAL_IP:192.168.214.1

  

[27/Aug/2023 16:35:56] "GET /test/ HTTP/1.0" 200 19

REMOTE_ADDR:192.168.214.1

HTTP_X_REAL_IP:该元素存在

[27/Aug/2023 16:35:58] "GET /test/ HTTP/1.1" 200 19

#此时我们拿到了真实的nginx的地址

负责均衡配置

1、配置文件

2、测试负载均衡

分别访问2次,返回的结果不一样,说明负载均衡已经生效

a、nginx返回的的页面

b、django返回页面

nginx从入门到实战的更多相关文章

  1. 【Nginx从入门到实战】

    目录 1. 网站服务 2. 所谓Nginx 3. 安装Nginx 4. Nginx配置文件详述 5. 开始玩转Nginx Nginx虚拟主机 Nginx状态信息(status)配置 Nginx错误页面 ...

  2. nginx入门与实战 安装 启动 配置nginx Nginx状态信息(status)配置 正向代理 反向代理 nginx语法之location详解

    nginx入门与实战 网站服务 想必我们大多数人都是通过访问网站而开始接触互联网的吧.我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务. Web ...

  3. Nginx入门到实战

    location 语法 location 有”定位”的意思, 根据Uri来进行不同的定位. 在虚拟主机的配置中,是必不可少的,location可以把网站的不同部分,定位到不同的处理方式上. 比如, 碰 ...

  4. Nginx快速入门菜鸟笔记

    Nginx快速入门-菜鸟笔记   1.编译安装nginx 编译安装nginx 必须先安装pcre库. (1)uname -a 确定环境 Linux localhost.localdomain 2.6. ...

  5. Docker技术入门与实战第2版-高清文字版

      Docker技术入门与实战第2版-高清文字版 下载地址https://pan.baidu.com/s/1bAoRQQlvBa-PXy5lgIlxUg 扫码下面二维码关注公众号回复100011 获取 ...

  6. Docker技术入门与实战

      Docker技术入门与实战 下载地址https://pan.baidu.com/s/1bAoRQQlvBa-PXy5lgIlxUg 扫码下面二维码关注公众号回复100011 获取分享码 本书目录结 ...

  7. 一篇文章带你了解轻量级Web服务器——Nginx简单入门

    一篇文章带你了解轻量级Web服务器--Nginx简单入门 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件代理服务器 在本篇中我们会简单介绍Nginx的特点,安装,相关指令使用以及配置信 ...

  8. 赞一个 kindle电子书有最新的计算机图书可买了【Docker技术入门与实战】

    最近对docker这个比较感兴趣,找一个比较完整的书籍看看,在z.cn上找到了电子书,jd dangdang看来要加油啊 Docker技术入门与实战 [Kindle电子书] ~ 杨保华 戴王剑 曹亚仑 ...

  9. docker-9 supervisord 参考docker从入门到实战

    参考docker从入门到实战 使用 Supervisor 来管理进程 Docker 容器在启动的时候开启单个进程,比如,一个 ssh 或者 apache 的 daemon 服务.但我们经常需要在一个机 ...

  10. webpack入门和实战(一):webpack配置及技巧

    一.全面理解webpack 1.什么是 webpack? webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都 ...

随机推荐

  1. [POI2015] MOD 题解

    前言 题目链接:洛谷. 题意简述 给定一棵树,求断掉一条边再连上一条边所得的新树直径最小值和最大值,以及相应方案(你可以不进行任何操作,即断掉并连上同一条边). 题目分析 假设我们枚举断掉某一条边,得 ...

  2. 新晋 Committer!来自复旦大学的帅哥一枚

    点亮Star️ · 支持我们 https://github.com/apache/dolphinscheduler 最近,社区星力量又迎来一位新晋 Committer,这次是来自复旦大学研究生在读的王 ...

  3. 一步步开发Windows服务(Windows Service)[转]

    基于0起步来创建一个服务,做到简单的记录时间日志功能,其具体招行方法可自行添加. 1.创建服务 2.删除默认服务文件 3.添加自己的服务文件 4.更改启动项目 5. 引用 using System.T ...

  4. 推荐一款Python开源移动应用安全测试分析工具!!!

    今天给大家推荐一个安全测试相关的开源项目:nccgroup/house 1.介绍 它是一个由 NCC Group 开发的,一个基于Frida和Python编写的动态运行时移动应用分析工具包,提供了基于 ...

  5. Linux驱动| Linux内核 RTC时间架构

    上一篇文章我们给大家讲解了基于瑞芯微rk3568平台芯片hym8563驱动的移植,本文给大家详细讲解Linux内核的时间子系统. <Linux驱动|rtc-hym8563移植笔记> 一.L ...

  6. WinForm DevExpress 添加行内按钮

    1.在设计器里面添加一列,设置单元格不可编辑.只读属性 2. 在所在GridView属性里面添加CustomDrawCell事件与RowCellClick事件 private void gvMain_ ...

  7. Clobotics 计算机视觉场景存储实践:多云架构、 POSIX 全兼容、低运维的统一存储

    Clobotics 是一家将计算机视觉和机器学习技术应用于风电以及零售行业的企业.在风电行业,Clobotics 利用无人机对风力发电机叶片进行检查,显著降低了对人工作业的依赖.在零售领域,公司通过分 ...

  8. Python自动复制Excel数据:将各行分别重复指定次数

      本文介绍基于Python语言,读取Excel表格文件数据,并将其中符合我们特定要求的那一行加以复制指定的次数,而不符合要求的那一行则不复制:并将所得结果保存为新的Excel表格文件的方法.   这 ...

  9. 扩展KMP (ex_KMP)

    一些约定: 字符串下标从1开始 s[1,i]表示S的第一个到第i个字符组成的字符串 解决的题型: 给你两个字符串A,B(A.size()=n,B.size()=m),求p数组 p[i]表示最大的len ...

  10. 图穷匕见-所有反DDD模式都是垃圾

    本文书接上回<主观与客观,破除DDD凭经验魔咒>,关注公众号(老肖想当外语大佬)获取信息: 最新文章更新: DDD框架源码(.NET.Java双平台): 加群畅聊,建模分析.技术实现交流: ...