Nginx

概念

复制代码
nginx
    什么是nginx
        nginx是一个高性能的HTTP和正、反向代理的服务器
    nginx可以干什么
        可以作为web服务器,可以实现反向代理,可以实现基于反向代理的负载均衡,可以作为静态资源服务器(类似于七牛云)
    什么时候使用nginx
        后台搭建集群的时候,访问量较大,使用

使用

复制代码
    nginx作为静态资源的web服务器
        -部署前端项目,实现完全的前后端分离
    nginx作为正向代理
        -使用正向代理功能,进行上网-通过代理服务器来访问服务器的过程
    nginx作为反向代理
        -使用反向代理功能,用户使用客户端时,访问反向代理服务器,由反向代理服务器访问后端真实地址,获取数据后返回给用户,此时nginx就是一个对外的表面服务器,隐藏了真实地址,非常安全
    nginx基于反向代理实现负载均衡
        -基于反向代理服务器,像后端发送请求时,将多个请求按照轮询、权重和ip_hash来分发给多个后端服务器,减轻单个服务器的压力,实现负载均衡

实际应用

没有图形界面化时: 在nginx.conf文件中,添加新的反向代理服务器

没有实现负载均衡

复制代码
没有实现负载均衡
        格式
            server  {
                #反向代理服务器地址,监听用户客户端使用
                listen  反向代理服务器端口号 ;
                #反向代理服务器名称
                server_name 反向代理服务器名称 ;
                #资源
                location / {
                #解决配置跨域
                add_header 'Access-Control-Allow-Origin' '$http_origin';
                add_header 'Access-Control-Allow-Credentials' 'true';
                add_header 'Access-Control-Allow-Methods' 'POST, GET, OPTIONS, DELETE, PUT';
                add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,token';
​
                #解决跨域post请求问题,OPTIONS是post请求的先锋部队,试探成功则post,否则失败
                if ($request_method = 'OPTIONS') {
                    #返回204,试探成功
                    return 204;
                }
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                #配置反向代理服务器访问后端的地址
                proxy_pass 后端访问服务器地址 ;
                }
            }
        

实现负载均衡

复制代码
-实现负载均衡
        格式
            #声明后端服务的集群地址
            upstream 集群名字{
                #默认规则
                #   -轮询-每个服务分发一次请求
                #   -权重-设置1-10的权重,按照百分比的概率给后端服务分发请求
                #   -ip_hash-通过用户的ip地址进行hash计算绑定一个服务-解决session共享问题
                #规则选择一种,这里只做演示
                server  服务名称:端口号
                server  localhost:8000 ;#默认轮询
                server  localhost:8001 weight=1 ;#权重-加起来100%概率
                server  localhost:8002 weight=9 ;
                ip_hash ;#在前面加上ip_hash开启绑定
                server  localhost:8003 ;该用户进来后指分发到该服务
            }
            server  {
                listen  反向代理服务器端口号 ;
                server_name 反向代理服务器名称 ;
                #资源
                location / {
                    #转发的地址
                    proxy_pass http://集群名字 ;
                }
            }
        

静态资源服务器

复制代码
-静态资源服务器
        格式
            server  {
                listen 反向代理服务器端口号 ;
                server_name 反向代理服务器名称 ;
                #资源
                location / {
                    root 静态资源地址 ;
                    autoindex on ;
                }
            }
        

web服务器使用

复制代码
-web服务器使用
        格式
            server  {
                listen 端口号 ;
                server_name 服务器名称 ;
                #资源
                location / {
                    root 根目录 ;
                    index 首页页面 ;
                }
            }
相关推荐
三品吉他手会点灯28 分钟前
C语言学习笔记 - 20.C编程预备计算机专业知识 - 变量为什么必须的初始化【重点】
c语言·笔记·学习
sakiko_41 分钟前
UIKit学习笔记1-创建项目(使用UIKit)、使用组件
笔记·学习
生信碱移1 小时前
PACells:这个方法可以鉴定疾病/预后相关的重要细胞亚群,作者提供的代码流程可以学习起来了,甚至兼容转录组与 ATAC 两种数据类型!
人工智能·学习·算法·机器学习·数据挖掘·数据分析·r语言
星幻元宇VR3 小时前
VR航空航天科普设备【VR时空直升机】
科技·学习·安全·生活·vr
_李小白3 小时前
【android opencv学习笔记】Day 2: Mat类(图片数据结构体)
android·opencv·学习
harder3214 小时前
RMP模式的创新突破
开发语言·学习·ios·swift·策略模式
程序猿乐锅5 小时前
【Tilas|第三篇】多表SQL语句
数据库·经验分享·笔记·学习·mysql
徐某人..5 小时前
基于i.MX6ULL平台的智能网关系统开发
arm开发·c++·单片机·qt·物联网·学习·arm
AOwhisky6 小时前
Kubernetes 学习笔记:集群管理、命名空间与 Pod 基础
linux·运维·笔记·学习·云原生·kubernetes
光影少年6 小时前
大屏页面,一次多个请求,请求加密导致 点击 全局时间选择器 时出现卡顿咋解决(面板收起会延迟1~2秒)
前端·javascript·vue.js·学习·前端框架·echarts·reactjs