• nginx入门


    我也是小白,各位倘若看到一定要带着思考来看.

    以下内容皆为个人理解,可能存在错误.

    一、背景

    • 什么是nginx
      nginx网上解释的吧啦吧啦一大堆,个人的理解就是可以在用户服务器之间的一个web服务器.有了nginx,我们就可以在用户和服务器中间做一些事情.
      类似于下面这样

      用户发起请求后,被nginx所接受,nginx就可以对这个请求做一些处理.

    • 实例:
      在本地设置nginx为80端口,在浏览器中输入localhost后,请求就转到了nginx中.
         (如果我们nginx中设置将请求转到9596端口)
      用户输入的是localhost,而实际上访问到的是localhost:9596,这就是nginx的作用之一.

    二、nginx的安装(Windows)

    OpenResty是nginx的扩展版本,实际上也就是nginx,当做nginx即可.
    下载地址(2020.4.29)

    下载后得到一个压缩包,解压到自己想要的文件夹即可.
    我解压到了E:SoftwareNginxOpenResty目录下,点开对应的文件夹,里面的内容是这样的.

    由于刚入门,所以目前我们关注的只有两个东西

    • nginx.exe
    • conf文件夹下的nginx.conf文件
      nginx.exe用于启动nginx,而nginx.conf是我们的配置信息.

    三、nginx的启动

    • 首次启动
      nginx.exe目录下,按住shift后点击鼠标右键,选择在此处打开命令窗口.

      命令窗口输入命令

    nginx.exe

    即可启动nginx.
    打开浏览器输入localhost,访问到欢迎页面,说明启动成功.

    • 重新启动

    在第一次启动后,发现那个启动窗口好像卡住了,可以重新"此处打开命令窗口",然后输入

    nginx.exe -s reload

    即可重新启动

    • 关闭nginx

    在win系统中,强制结束nginx.exe

    taskkill /f /im nginx.exe

    扩展
    1.查看指定端口的占用情况

    netstat -aon|findstr "端口号"
    可以看到端口xx被指定进程号(pid)xx的进程占用

    2.查看指定pid对应的程序名

    tasklist|findstr "pid"

    3.按进程名字关闭

    taskkill /im xx.exe

    4.按进程号关闭

    taskkill /pid pid号

    5.强行终止

    taskkill /f /im xx.exe
    taskkill /f /pid pid号

    四、nginx的匹配规则

    在/conf目录下的nginx.conf文件中,我们可以对nginx进行一些配置.
    在http->server下可以对请求进行配置.

    • 请求配置的格式为:

    location 规则 请求名{

    }

    例如配置规则为:

    重启nginx(命令nginx.exe -s reload)
    在浏览器中输入localhost/hello

    • 根据输入的请求不同,做出的处理也不同.

    优先级从高到低

    1.  =
    2.  ^~
    3.  ~
    4.  直接写请求名字

    详情如下图

    五、反向代理

    nginx在收到请求后,将请求转到对应的服务器上.
    例如配置/a请求在localhost:1234上,而/b请求在localhost:5678上.
    可以填写真实的ip地址和端口,只不过此处写的都是本机而已.
    这样用户输入localhost/a或者localhost/b,感觉访问的是同一台服务器,但是nginx却分发到了不同的服务器上.
    这样服务器对用户来说就是不可见的,你输入的1.1.1.1访问,实际上可能转到了别的ip如2.2.2.2上.

    • 如何设置反向代理

      proxy_pass http://ip:port

      访问localhost,实际上访问到的是127.0.0.1:9596,注意http://开头

    直接访问9596端口,可以看到网页如下.

    由于设置了反向代理,直接输入localhost也能访问到该页面.

    注意

           # 后面没有加"/"
           location /a {
                # 转到了 http://127.0.0.1:9596/a
                proxy_pass http://127.0.0.1:9596;
            }
    
            # 后面都加个"/",转到的就是根目录.
            location /b/ {
                # 转到了 http://127.0.0.1:9596,最后也有个"/"
                proxy_pass http://127.0.0.1:9596/;
            }
    

    六、负载均衡

    通过上面的内容我们可以知道,我们可以配置实际访问的服务器.
    这样访问同一个请求,可以让不同的服务器去处理,减轻了服务器的压力.

    worker_processes  1;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
    
        #是ip地址没有http
        upstream group1{
            server 127.0.0.1:1234 weight=1;
            server 127.0.0.1:5678 weight=5;
        }
    
        server {
            listen       80;
            server_name  localhost; 
            # 设置格式
            default_type  text/html;
    
            #替代group1
    	    location /b/ {
    	    proxy_pass http://group1/;
    	    }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
        }
    
    }
    
  • 相关阅读:
    gearman管理
    php运行方式
    gearman mysql持久化
    gearman安装及初次使用
    消息队列各种比较
    IOC
    post提交/文件上传服务器修改
    protobuf php
    thrift 安装介绍
    qt中使用opencv处理图片 QImage 和 IplImage 相互之间转换问题
  • 原文地址:https://www.cnblogs.com/yang37/p/12805585.html
Copyright © 2020-2023  润新知