美文网首页
nginx使用

nginx使用

作者: 奋斗的韭菜汪 | 来源:发表于2022-09-13 08:44 被阅读0次

    高并发最终的解决方案离不开io的多路复用。

    Nginx和Apache HTTP Server Project的区别

    nginx是一台轻量级的HTTP Server,同时nginx也支持其他协议(SSMTP、Top3),Nginx和Apache一样都是来处理和响应用户请求的,被叫做HTTP Server,Nginx主要解决了并发的问题,能支持更高的并发量(官方数据单机10万并发)。

    Nginx和Tomcat的区别

    Nginx是HTTP Server(处理和响应用户请求),Tomcat是Application Server(存放和运行系统程序)。目前的应用服务器(tomcat jobss)都包含了HTTP Server 的功能

    HTTP Server和Application Server的区别与联系。

    HTTP Server主要用于访问静态资源,Application Server可以生产动态内容。一般都会将Nginx服务器跑在tomcat等应用服务器前,Nginx服务器也叫做代理服务器

    Nginx配置文件格局

    image.png

    配置内容规则

    1. 用“#”表示注释
    2. 每行配置的结尾需要加上分号
    3. 如果配置项值中包括语法符号,比如空格符,那么需要使用单引号或双引号括住配置项值,否则nginx会包语法错误
    4. 单位简写:K或者k千字节(KiloByte,KB),M或者m兆字节(MegaByte,MB) ms(毫秒),s(秒),m(分钟),h(小时),d(天),w(周,包含7天),M(月,包含30天),y(年,包含365天)

    Nginx常用命令

    image.png

    Nginx实现反向代理

    • 正向代理:为客户端服务的,请求发送给代理服务器,服务器获取目标服务器内容,发送给客户端,(隐藏了客户端,如国内的vpn翻墙)
    • 反向代理:为服务器服务的,客户端请求代理服务器,代理服务器隐藏了目标服务器,(比如负载均衡)
      反向代理最重要的配置:\color{red}{ proxy\_pass }
      通过proxy_pass转发请求到目标服务器上,如下,转发请求到http://192.168.44.1:9096
      image.png

    Nginx负载均衡upstream

    1. wrr:weighted round-robin权重轮训
    2. ip_hash: IP的哈希结果固定选择一个真实的服务器
    3. least_conn:当前活跃连接数越小、权重越大,越优先选择
    image.png
    第三方负载均衡模块:如fair(公平,根据响应时间来负载)需要编译安装制定的nginx包
    Nginx 1.18.0 安装第三方负载均衡模块 fair

    Nginx缓存

    1. 创建Nginx缓存目录proxy_cache_path /data/nginx/cache


      image.png

    Nginx实现动静分离

    location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css)${
         root /usr/local/soft/nginx/data/static;
    }
    #或者通过proxy_pass映射到其他静态服务器
    

    Nginx实现数据压缩

    Nginx实现跨域访问

    为什么存在跨域问题?
    浏览器的限制。(出于安全性的考虑)

    不同域


    image.png

    CORS,Cross-Origin Resource sharing(跨域资源共享)
    解决跨域的方法:

    1. (前端解决方法)修改浏览器配置,或使用JSONP代替ajax请求(只能解决get类型的请求)
    //使用JSONP代替ajax请求
    dataType: "JSONP",
    jsonp: "callback",
    jsonpCallback: "successCallback",
    
    1. (后端解决方法)目标域方法上加上@CrossOrigin,或通过配置类实现指定域可以访问当前域
    //加上注解之后,请求会在响应头里加入如下内容
    "Access-Control-Allow-Origin":"*"
    "Access-Control-Allow-Methods":"GET,POST,PUT,OPTIONS"
    "Access-Control-Allow-Credentials":"true"
    
    1. nginx
      通过nginx代理,去访问两个不同域的内容(方式一,用nginx代理两个域,方式二,通过在第二个域的前置nginx中加入Access-Control-Allow-Origin)


      方式一
      方式二

    Reference:

    nginx documentation(官方)

    相关文章

      网友评论

          本文标题:nginx使用

          本文链接:https://www.haomeiwen.com/subject/qnwrprtx.html