Loading

Nginx

简介

Nginx(”engine x”)是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上Ngfinx的并发能力确实在同类型的网页服务器中表现较好。Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50000个并发连接数。

正向代理:如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需要为浏览器配置代理服务器来访问,这种代理服务就称为正向代理。

反向代理:我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器P地址。

正向代理:代理客户端;反向代理:代理服务端。

负载均衡:将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器。

动静分离:为了加快网站的解析速度,将动态请求和静态请求分开。

常用命令

使用Nginx操作命令的前提是必须先进入Nginx的目录:/usr/local/nginx/sbin

命令 作用
./nginx -v 查看Nginx版本
./nginx 启动Nginx
./nginx -s stop 关闭Nginx
./nginx -s reload 重新加载Nginx

配置文件

Nginx配置文件:/usr/local/nginx/conf/nginx.conf

全局块主要会设置一些影响 nginx 服务器整体运行的配置指令,包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。

events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 wordprocess 可以同时支持的最大连接数等。

http块是Nginx服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里,包括 http 全局块、server 块。http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。

反向代理

遇到此站点的连接不安全的问题时候,检查一下自己是不是将http打成了https

修改host文件记得使用ANSI编码格式,否则会无效。

修改配置文件中的server,配置location中的参数。

server {
    listen       9001;
    server_name  192.168.52.130;

    location ~ /edu/ {
        proxy_pass http://127.0.0.1:8080;
    }

    location ~ /vod/ {
        proxy_pass http://127.0.0.1:8081;
    }
}

负载均衡

  1. 首先使用upstream配置进行负载均衡的端口。
upstream myserver {
    server  192.168.52.130:8080;
    server  192.168.52.130:8081;
}
  1. 然后配置location,记得名字是对应的。
location / {
    root   html;
    proxy_pass  http://myserver;
    index  index.html index.htm;
}

访问方式

  1. 轮询:每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
  2. 权重:为每个端口设置权重,权重越高,分配的客户端越多。
  3. ip_hash:每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。
  4. fair:按后端服务器的响应时间来分配请求,响应时间短的优先分配。

动静结合

分别为动态资源和静态资源配置location即可。

location / www/ {
    root   /data/;
    index  index.html index.htm;
}

location /image/ {
    root  /data/;
    autoindex on;
}

高可用

生产环境之Nginx高可用方案

Nginx原理

Nginx分为Master和Worker两个部分。

Worker的个数最好与CPU的个数相同,这样能够发挥出最大的性能。

posted @ 2023-12-13 11:13  西芹-小汤圆  阅读(19)  评论(0)    收藏  举报