• 快速上手Nginx的学习笔记


    Nginx概述

    之前部署网站和静态界面时,一直使用的是tomcat的,最近由于项目的需要,需要使用到nginx,学习一个新的软件的使用,基本都需要了解如何配置它,让它可以起作用,下面是对于nginx的一些常见功能的配置,目前并没有深入的了解nginx,对于一个软件的学习从会用再到了解底层的原理到学习它更多的功能是一个很好的学习方式。

    介绍

    image-20220807170153219

    Nginx的安装和配置

    下载地址和界面

    nginx: download

    image-20220807000707159

    1. 安装相关的依赖包 yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

    2. 下载Nginx的安装包 wget http://nginx.org/download/nginx-1.16.1.tar.gz

    3. 解压 tar -zxvf nginx-1.16.1.tar.gz

    4. cd nginx-1.16.1

    5. ./configure --prefix=/usr/local/nginx (安装到指定的目录中)

    6. make && make install (编译并安装)

      安装完之后有四个目录

      image-20220807004743562

    nginx的目录结构

    image-20220807170136900

    执行tree可以查看完整的目录结构

    无法使用该命令的 需安装 yum install tree,这样看起来更加的直观,结构更加的清晰

    image-20220807005030543

    Nginx的命令

    查看版本号nginx -v

    image-20220807005353578

    上面没有写./上面的版本是服务器自带的,下面的刚才安装的

    image-20220807005504676

    检查配置文件的正确性

    在启动Ngnix服务之前,可以先检查一下 conf/nginx.conf文件配置是否有错误,命令如下

    ./nginx -t

    image-20220807005704633

    启动和停止

    启动Nginx服务使用如下命令: 注意 :由于没有配置环境变量一定要在/usr/local/nginx/sbin目录下执行才可以,否者被执行的就是服务器自带的Nginx,对于该符号./也一定要带上,否者执行的还是原先自带的Nginx

    ./nginx

    在启动的过程中如果出现了问题,可以使用fuser -k 80/tcp杀死占用的端口号

    停止Nginx服务使用如下命令:

    ./nginx -s stop

    启动完成之后可以查看Nginx的进程:

    ps -ef | grep nginx

    可以看到这个界面说明启动已经成功了,默认会访问usr/local/nginx/html/index.html文件,nginx默认使用的端口号是80,而80默认是可以不用写的

    image-20220807011006424

    重新加载配置文件

    当我们修改了Nginx的配置文件后,需要重新加载才可以生效,可以使用下面的命令重新加载配置文件

    ./nginx - s reload

    修改配置文件

    对于上面的启动和重新加载以及停止服务,都需要进入到/usr/local/sbin下执行命令才可以运行,在其它目录下执行的时候其实执行的是购买云服务器之后云服务器默认安装的nginx,默认安装的以及配置好了环境,自己安装的由于没有配置环境只能进入到对应的文件夹才可以执行.

    如果想让自己安装的也可以在任何文件夹下执行的化,需要配置文件(由于我不嫌麻烦,就没有配置了,避免和原先的起冲突)

    如果需要配置的化/etc/profile文件中添加相应都1参数

    Nginx配置文件结构

    image-20220807170114804

    整个文件的内容(去掉注释之后)

    worker_processes  1;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
    
    
        server {
            listen       80;
            server_name  localhost;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    Nginx具体应用

    部署静态资源

    Nginx可以作为静态的web服务器部署静态的资源.静态资源指在服务器真实存在并能够展示的一些文件,比如常见的html页面,css文件,js文件,图片,视频等资源

    相对于tomcat,Nginx处理静态资源的能力更加的高效,所以在生产环境中,一般都会将静态资源部署在Nginx中.

    将静资源部署到Nginx非常的简单,只需要将文件复制到Nginx安装目录下的html目录中即可

    server {  //可以有多个,可以直接整体复制之后更改端口或其它即可
            listen       80;     # 监听端口
            server_name  localhost;  # 服务器的名称
    
            location / {  # 匹配客户端的url
                root   html;   # 指定静态资源的根目录
                index  index.html index.htm; # 指定静态资源的默认首页(默认首页可以设置多个)
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    喜欢就是不休啊混就是不吓唬你

    反向代理

    • 正向代理

    image-20220807170053634

    • 反向代理

      反向代理服务器位于用户和目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问的反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器.

      用户不需要知道目标服务器的地址,也无需在用户端作任何设定

      image-20220807133322686

    • 配置反向代理

    如果需要进行反向代理配置的化,可以修改如下的配置

    server{
        listen 82:
        server_name localhost:
        localtion / {
            proxy_pass http://192.168.138.111:8080;  #反向代理配置,将请求转发发送到指定服务
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    负载均衡

    image-20220807165918958

    image-20220807165932907

    image-20220807165942075

  • 相关阅读:
    HC32M0+ GPIO
    mysql 过滤多列重复的值(保留其中一条),对单列或者多列重复的值去重
    thinkphp5 加载静态资源路径与常量的方法
    全面分析“由于找不到vcruntime140_1.dll,无法继续执行代码”问题的解决方法
    音视频技术在手机上的应用与挑战
    obsidian配合hugo的使用,让markdown本地编辑软件与在线化无缝衔接
    逆变器孤岛检测及其测试方法
    5)自适应滤波(二)[RLS算法]
    从 Wepy 到 UniApp 变形记
    C#中的LINQ(Language-Integrated Query)
  • 原文地址:https://blog.csdn.net/weixin_47994845/article/details/126441681