博客
关于我
nginx看这一篇文章就够了
阅读量:793 次
发布时间:2023-02-15

本文共 2277 字,大约阅读时间需要 7 分钟。

Nginx简介

Nginx是一款轻量级的Web服务器和反向代理服务器,也是电子邮件(IMAP/POP3)代理服务器。由俄罗斯的Igor Sergeev开发,最初为Rambler.ru站点服务。Nginx以占用内存少且并发能力强著称,中国大陆知名互联网公司如百度、京东、新浪、网易、腾讯、淘宝等都采用Nginx。

Nginx安装

Windows安装

  • 解压nginx压缩包,默认配置。
  • 切换到nginx解压目录(nginx.exe目录下)。
  • 启动命令:start nginx.exe。
  • 常用命令:
    • 启动:start nginx.exe。
    • 停止:nginx.exe -s stop 或 nginx.exe -s quit。
    • 重载:nginx.exe -s reload。
    • 查看版本:nginx -v。
  • 注意事项:不要双击nginx.exe,修改配置后需手动关闭任务管理器内的进程。

    Linux安装

  • 安装依赖库:

    • gcc-c++:yum install gcc-c++。
    • PCRE:yum install pcre pcre-devel。
    • zlib:yum install zlib zlib-devel。
    • OpenSSL:yum install openssl openssl-devel。
  • 解压nginx压缩包:tar -zxvf nginx-1.11.6.tar.gz。

  • 配置并安装:./configure && make install。

  • 查询安装路径:whereis nginx。

  • 启动/停止命令:

    • 默认安装路径:/usr/local/nginx/sbin。
    • 命令:./nginx 开启,./nginx -s stop 停止。
  • 配置文件目录:/usr/local/nginx/conf。

  • Docker安装

  • 寻找镜像:docker search nginx。

  • 拉取镜像:docker pull nginx:latest。

  • 查看镜像:docker images。

  • 运行容器:docker run -name nginx-app -p 8081:80 -d nginx。

  • 访问测试:确认安装成功。

  • Nginx配置

    配置文件结构

    Nginx配置文件结构包括全局块、http块、server块、location块和upstream块。每个块内设置特定参数,实现反向代理、负载均衡、静态资源访问等功能。

    配置文件详解

    • 全局块:设置基本参数,如error_log、worker_processes等。
    • http块:处理HTTP请求,如sendfile、keepalive_timeout等。
    • server块:配置虚拟主机,设置域名和端口。
    • location块:定义URL匹配规则,配置反向代理和负载均衡。
    • upstream块:定义负载均衡服务器组。

    反向代理

    什么是反向代理

    反向代理是指通过代理服务器转发请求到目标服务器。与正向代理不同,反向代理将代理服务器对外表现为服务器。

    反向代理的实现

    配置反向代理简单,仅需在location块中设置proxy_pass指向目标服务器地址即可。例如:

    location /ceshi {    proxy_pass http://localhost:8080/PictureSharing/index;}

    为什么用反向代理

  • 提高安全性:所有请求需通过代理服务器。
  • 加速静态资源:缓存静态资源。
  • 负载均衡:分发请求至多个服务器。
  • Nginx负载均衡

    负载均衡配置

  • 在http块内创建upstream块,定义负载均衡服务器组:
  • upstream mysvr {    server 127.0.0.1:8080;    server 127.0.0.1:8081 backup;}
    1. 在location块中设置负载均衡:
    2. location / {    proxy_pass http://mysvr;}

      负载均衡策略

    3. 热备:在服务器故障时启用备用服务器。
    4. 轮询:默认轮询,请求顺序为ABABABABAB。
    5. 加权轮询:根据权重分发请求。
    6. ip_hash:相同IP请求相同服务器。
    7. 其他参数:down、max_fails、fail_timeout等。
    8. Nginx静态资源访问

      配置图片服务器

      仅需修改location块:

      location /file/ {    alias D:/360Downloads/wpcache/srvsetwp/;    autoindex on;}

      访问地址即可查看图片列表。

      root 和 alias 区别

      • root:指定最上层目录,访问时拼接路径。
      • alias:指定目录别名,访问时直接使用别名。

      注意事项:

      • alias后需以“/”结束,否则文件不可找。
      • root可有可无。

      Nginx动静分离

      动静分离介绍

      通过缓存静态资源,减轻后端服务器负载。Nginx处理静态资源时,直接从硬盘读取,提高响应速度。

      动静分离实现

    9. 配置静态资源目录:
      location /abc {    alias D:/app/hs_admin/;    index index.html;}
    10. 在浏览器测试访问,确保前端页面正确加载。
    11. 跨域问题解决

    12. 跨域定义:浏览器同源策略限制跨域请求。
    13. 解决方法
      • Spring Boot:使用@CrossOrigin注解,允许跨域请求。
      • 配置CORS:在nginx配置文件中添加CORS设置。
    14. 通过以上配置,Nginx可以高效处理动静资源,实现前后端分离,提升网站性能和用户体验。

    转载地址:http://nzjfk.baihongyu.com/

    你可能感兴趣的文章
    netty底层源码探究:启动流程;EventLoop中的selector、线程、任务队列;监听处理accept、read事件流程;
    查看>>
    Netty心跳检测
    查看>>
    Netty心跳检测机制
    查看>>
    netty既做服务端又做客户端_网易新闻客户端广告怎么做
    查看>>
    netty时间轮
    查看>>
    Netty服务端option配置SO_REUSEADDR
    查看>>
    Netty核心模块组件
    查看>>
    Netty框架内的宝藏:ByteBuf
    查看>>
    Netty框架的服务端开发中创建EventLoopGroup对象时线程数量源码解析
    查看>>
    Netty源码—1.服务端启动流程一
    查看>>
    Netty源码—1.服务端启动流程二
    查看>>
    Netty源码—2.Reactor线程模型一
    查看>>
    Netty源码—2.Reactor线程模型二
    查看>>
    Netty源码—3.Reactor线程模型三
    查看>>
    Netty源码—3.Reactor线程模型四
    查看>>
    Netty源码—4.客户端接入流程一
    查看>>
    Netty源码—4.客户端接入流程二
    查看>>
    Netty源码—5.Pipeline和Handler一
    查看>>
    Netty源码—5.Pipeline和Handler二
    查看>>
    Netty源码—6.ByteBuf原理一
    查看>>