• Nginx基础教程


    目录

    (一)Nginx简介

    (二)Nginx的作用

    0x01 代理

    1.1  正向代理:代理是代理客户端的

     1.2 反向代理

     0x02 负载均衡

    2.1 内置策略

     0x03 动静分离

    (三)Nginx的安装

    (四)Nginx常用命令

    (五)Nginx配置文件

    nginx.conf 内容结构:

    (六)Nginx反向代理


    (一)Nginx简介


    • Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
    • 其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好
    • Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。
    • Nginx代码完全用C语言从头写成。官方数据测试表明能够支持高达 50,000 个并发连接
    • 数的响应。

    (二)Nginx的作用


    0x01 代理

    代理作为web服务器最常用的功能之一,尤其是反向代理

    1.1  正向代理:代理是代理客户端的


     1.2 反向代理


    代理是代理服务器的,所以用户是无感知的,比如,百度的服务器是在不同的服务器上,我们只需要搜索baidu.com就行

     0x02 负载均衡


    Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,非常强大。

    2.1 内置策略

    • 轮询

     

    • 加权轮询,因为可能不同服务器性能不一样,能接收的请求数量不同

     

    • iphash对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题

     0x03 动静分离


    在我们的软件开发中,有些请求是需要后台处理的,有些请求是不需要经过后台处理的(如:css、html、jpg、js等等文件),这些不需要经过后台处理的文件称为静态文件。让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作。提高资源响应的速度。

     

    (三)Nginx的安装


    这里使用ubuntu直接apt安装命令即可:

    sudo apt install nginx

    其中配置文件在 /etc/nginx/ 目录下

    (四)Nginx常用命令


    1. nginx 启动
    2. nginx -s stop 停止
    3. nginx -s quit 安全退出
    4. nginx -s reload 重新加载配置文件
    5. ps aux|grep nginx 查看nginx进程
    • 注意:如何连接不上,检查服务器防火墙是否开放端口
    1. # 开启
    2. service firewalld start
    3. # 重启
    4. service firewalld restart
    5. # 关闭
    6. service firewalld stop
    7. # 查看防火墙规则
    8. firewall-cmd --list-all
    9. # 查询端口是否开放
    10. firewall-cmd --query-port=8080/tcp
    11. # 开放80端口
    12. firewall-cmd --permanent --add-port=80/tcp
    13. # 移除端口
    14. firewall-cmd --permanent --remove-port=8080/tcp
    15. #重启防火墙(修改配置后要重启防火墙)
    16. firewall-cmd --reload
    • firwall-cmd:是Linux提供的操作firewall的一个工具;
    • –permanent:表示设置为持久;
    • –add-port:标识添加的端口;

    (五)Nginx配置文件


    配置文件 为nginx.conf ,其中nginx.conf 的注释符号为: #

    nginx.conf 内容结构:

    1. ... #全局块
    2. events { #events
    3. ...
    4. }
    5. http #http
    6. {
    7. ... #http全局块
    8. server #server
    9. {
    10. ... #server全局块
    11. location [PATTERN] #location
    12. {
    13. ...
    14. }
    15. location [PATTERN]
    16. {
    17. ...
    18. }
    19. }
    20. server
    21. {
    22. ...
    23. }
    24. ... #http全局块
    25. }
    • 全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
    • events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
    • http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
    • server块:配置虚拟主机的相关参数,一个http中可以有多个server。
    • location块:配置请求的路由,以及各种页面的处理情况。

    (六)Nginx反向代理


    假设我们有一个域名 www.example.com , 有两台服务器作为负载服务器,反向代理配置:

    1. http {
    2. ...
    3. upstream mysvr {
    4. server 192.168.0.1:8080;
    5. server 192.168.0.2:8080;
    6. }
    7. server {
    8. # 监听端口
    9. listen 80
    10. # 域名
    11. server_name = www.example.com
    12. # 匹配 URL
    13. location / {
    14. # 网站根目录
    15. root /var/www/html;
    16. # 网站的默认首页
    17. index index.html index.htm index.jsp;
    18. # 被代理服务器的地址,可以是主机名称、IP地址加端口号的形式
    19. proxy_pass http://mysvr; #请求转向mysvr 定义的服务器列表
    20. }
    21. ...
    22. }
    23. }

    这样就把 http://www.example.com:80 的访问分配到192.168.0.1和192.168.0.2这两台服务器的8080端口中,这就是反向代理。

  • 相关阅读:
    JavaScript基础
    Java导出带格式的Excel数据到Word表格
    打开PDF文件之后不能编辑,有哪些原因?
    IP-Guard如何判断Windows客户端是否安装成功?
    nrm,npm源的管理工具
    《动手学深度学习 Pytorch版》 6.2 图像卷积
    替换sql,某个字段特定容
    【论文阅读】时序动作检测系列论文精读(2018年)
    VW ware安装Ubuntu虚拟机及环境配置
    详解 Flink CDC 的介绍和入门案例
  • 原文地址:https://blog.csdn.net/m0_61506558/article/details/127713047