前端必备-Nginx基础及应用

本文介绍了Nginx的基础知识,包括正向代理与反向代理的概念,重点讲解了Nginx在前端的应用,如解决跨域、请求过滤、配置gzip、负载均衡以及适配PC与移动环境。Nginx作为高性能HTTP服务器和反向代理服务器,其在解决跨域问题上的代理策略和配置,以及在负载均衡中的多种策略,如轮询、最小连接数和最快响应时间,使得其成为前端开发中不可或缺的工具。
摘要由CSDN通过智能技术生成

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAPPOP3SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。

Nginx现在几乎是众多大型网站的必用技术,大多数情况下,我们不需要去详细的配置它,但是了解它在应用程序中所担当的角色,以及如何解决这些问题是非常有必要的。下面就从基本概念开始介绍:

正向代理与反向代理

代理是在服务器和客户端之间架设的一层服务器,代理将接收客户端的请求并将它转发给服务器,然后将服务器的响应转发给客户端。

不管是正向代理还是反向代理,实现的都是上面的功能。

正向代理

位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并制定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。

正向代理是为客户端服务的,客户端可以根据正向代理访问到它本身无法访问到的服务器资源。

正向代理客户端是透明的,对服务端是非透明的,即服务端并不知道自己接收到的是来自代理的访问还是来自真实客户端的访问。
正向代理

反向代理

反向代理(Reverse Proxy)方式是值以代理服务器来接收连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到结构返回给请求连接的客户端,此时代理服务器对外表现为一个反向代理服务器。

反向代理为服务端服务的,反向代理可以帮助服务器接收来自客户端的请求,帮助服务器做请求的转发、负载均衡等。

反向代理服务端是透明的,对客户端是非透明的,即客户端并不知道自己访问的是代理服务器,而服务器知道反向代理在为它服务。
反向代理

基本配置

配置结构

下面是Nginx配置文件的基本结构
Nginx配置结构

events {
    

}

http 
{
   
    server
    {
    
        location path
        {
   
            ...
        }
        location path
        {
   
            ...
        }
     }

    server
    {
   
        ...
    }

}

  • main: Nginx的全局配置,对全局生效。
  • events: 配置影响Nginx服务器或与用户的网络连接。
  • http: 可以嵌套多个server,配置代理、缓存、日志等绝大多数功能和第三方模块的配置。
  • server: 配置虚拟主机的相关参数,一个http中可以有多个server
  • location: 配置请求的路由,以及各种页面的处理情况。
  • upstream: 配置后端服务器的具体地址,负载均衡不可或缺的部分。

常用内置变量

下面是Nginx一些配置中的内置全局变量,你可以在配置的任意位置使用它们。

变量名 功能
$host 请求信息中的Host,如果请求中没有Host行,则等于设置的服务器名
$request_method 客户端请求类型,如GETPOST
$remote_addr 客户端的IP地址
$remote_port 客户端的端口
$args 请求中的参数
$content_length 请求头中的Content-length字段
$http_user_agent 客户端User-Agent信息
$http_cookie 客户端的cookie信息
$server_protocol 请求使用的协议,如HTTP/1.0HTTP/1.1
$server_addr 服务器地址
$server_name 服务器名称
$server_port 服务器端口号

前端可以用Nginx做些什么

解决跨域

跨域定义

跨域指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。

同源定义

如果两个页面的协议、端口、域名都相同,则这两个页面同源。

<
URL 结构 原因
http://clearlove.com/dir/a.html 成功
http://clearlove.com/dir2/b.html 成功
https://clearlove.com/dir/a.html 失败 不同协议(http和https)
http://clearlove.com:81/dir/a.html 失败 不同端口(80和81)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值