01 Nginx 指北

本文为个人学习摘要笔记。 原文地址:关于 Nginx,你还在背诵那些培训机构教给你的内容么?

什么是 Nginx

Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。其特点是占有内存少,并发能力强。

总结下来就几点内容:

  • HTTP 和反向代理 web 服务器

  • IMAP/POP3/SMTP 服务

Nginx 优点:

  • Nginx 使用基于事件驱动架构,使得其可以支持数以百万级别的 TCP 连接

  • 高度的模块化和自由软件许可证使得第三方模块层出不穷

  • Nginx 是一个跨平台服务器,可以运行在 Linux、Windows、Mac OS 等操作系统上

Nginx 的代理

所谓代理,就是一个代表、一个渠道,代理过程涉及到两个角色,一个是被代理角色,一个是目标角色,被代理角色通过这个代理访问目标角色完成一些任务的过程称为代理操作过程。

代理又分为了 2 种,一种是正向代理,一种是反向代理。

正向代理

最经典的正向代理莫过于翻墙,我们访问国外的网站的时候,是没有办法进行访问的,这时候就得需要一个代理服务器,我们把请求发给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们!

这种代理模式称为正向代理,正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。

正向代理的用途:

  • 访问原来无法访问的资源,如 Google

  • 可以做缓存,加速访问资源

  • 对客户端访问授权,上网进行认证

  • 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

反向代理

反向代理最经典的应用即分布式,通过部署多台服务器来解决访问人数限制的问题。

反向代理的用途:

  • 保证内网的安全,通常将反向代理作为公网访问地址,Web 服务器是内网

  • 负载均衡,通过反向代理服务器来优化网站的负载

Nginx 配置

配置文件详解:

文件
作用

nginx.conf

nginx 的基本配置文件

mime.types

与 fastcgi 相关的配置

proxy.conf

与 proxy 相关的配置

sites.conf

配置 nginx 提供的网站,包括虚拟主机

这里主要讲解 nginx.conf 文件,nginx.conf 配置文件主要分成四个部分:

  • main:全局设置,影响其它部分所有设置

  • server:主机服务相关设置,主要用于指定虚拟主机域名、IP 和端口

  • location:URL 匹配特定位置后的设置,反向代理、内容篡改相关设置

  • upstream:上游服务器设置,负载均衡相关配置

他们之间的关系式:server 继承 main,location 继承 server;upstream 既不会继承指令也不会被继承

通用配置说明:

使用 Nginx 过滤网络爬虫

Nginx 可以非常容易地根据 User-Agent 过滤请求,我们只需要在需要 URL 入口位置通过一个简单的正则表达式就可以过滤不符合要求的爬虫请求:

变量 $http_user_agent 是一个可以直接在 location 中引用的 Nginx 变量。~* 表示不区分大小写的正则匹配,通过 python 就可以过滤掉 80% 的 Python 爬虫。

最后更新于

这有帮助吗?