• Nginx学习与使用


    在阅读本文前,请先安装好nginx,安装步骤可以看
    Linux下安装Nginx

    一、了解nginx

    Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,作为一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少并发能力强

    二、常用命令

    使用nginx操作命令前提:必须进入到nginx的自动生成目录的下/sbin文件夹下
    默认自动生成目录:

    /usr/local/nginx

    查看版本号

    ./nginx -v
    

    启动

    ./nginx
    

    停止

    ./nginx -s stop
    

    重新加载

    用于修改配置文件后,让nginx重新加载新的配置文件

    ./nginx -s reload
    

    三、配置文件

    配置文件默认在 /usr/local/nginx/conf

    配置文件整体上分为三部分: 全局块、events块、http块

    区域功能
    全局块配置和nginx运行相关的全局配置
    events块配置和网络连接相关的配置
    http块配置代理、缓存、日志记录、虚拟主机等配置
    在这里插入图片描述

    通常我们配置的是http块

    四、应用

    nginx主要用于以下几种应用场景

    • 部署静态资源
    • 反向代理
    • 负载均衡

    部署静态资源

    nginx可以作为静态web服务器来部署静态资源(html页面、css文件、js文件、图片、视频)
    相对于Tomcat,Nginx处理静态资源的能力更加高效,所以在生产环境下,一般都会将静态资源部署到Nginx中。

    部署静态资源,只需要将文件复制到Nginx安装目录下的html目录中即可,然后修改nginx.conf。

    以首页为例,这里指定了访问80端口时,默认访问index.html

    server {
            listen       80;
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
    

    反向代理

    概念

    在之前,我们都是客户直接请求发送到服务端,这样就暴露了服务端的地址。

    反向代理服务器位于用户目标服务器之间,以代理服务器来接收internet网上的连接请求,然后将请求转发给内部网络上的目标服务器,并从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个节点服务器。

    在这里插入图片描述

    反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率

    例如:
    我们平时访问百度时,直接访问www.baidu.com。
    它背后可能有成千上万的服务器为我们服务,但具体是哪一台为我们服务,我们并不知道,也没必要知道。
    我们只需要知道反向代理服务器是www.baidu.com就可以

    Nginx就是性能非常好的反向代理服务器,用来做负载均衡

    实例

    目前作为代理服务器nginx的ip为 192.168.216.3,监听端口为80
    希望它代理http://172.16.50.124:8086

    目标服务器
    在这里插入图片描述
    通过修改nginx.conf

    proxy_pass http://172.16.50.124:8086
    

    在这里插入图片描述
    重新加载nginx

    ./nginx -s reload
    

    访问代理服务器192.168.216.3
    在这里插入图片描述
    代理成功

    负载均衡

    概念

    将原先单个服务器的请求改向多个服务器发送请求,通过轮询发送到服务器集群,减少单个服务器的压力。

    实例

    目前有两个应用分别占用172.16.50.124的80868085端口
    在这里插入图片描述

    在这里插入图片描述
    通过访问代理服务器实现负载均衡,把请求分散到这两个应用中。
    修改nginx.conf。
    在这里插入图片描述

    
        upstream myserver{
    	    server 172.16.50.124:8086;
    	    server 172.16.50.124:8085;
        }
    
    
        server {
            listen       80;
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
    	    proxy_pass http://myserver;
                index  index.html index.htm;
            }
    

    重新加载nginx

    ./nginx -s reload
    

    测试,访问代理服务器192.168.216.3两次
    在这里插入图片描述

    在这里插入图片描述
    负载均衡成功
    在这里插入图片描述

  • 相关阅读:
    探索 AIGC 和 Web3 游戏的结合点
    项目中应该使用nginx还是拦截器来封禁IP
    劳动节福利~ 我给大家写了个博客园快速发文工具
    字体图标以及svg图片的使用vite和webpack
    linux小命令
    深入探究音视频开源库WebRTC中NetEQ音频抗网络延时与抗丢包的实现机制
    从精装到智装,下一波浪潮浮现,听听智能家居的大咖们怎么说?
    力扣刷题学习SQL篇——1-12 树节点(使用行转列union/条件判断case when)
    直播美颜技术的技术背后:美颜SDK的原理与实践
    @Async注解
  • 原文地址:https://blog.csdn.net/jc_hook/article/details/126948422