nginx学习笔记

  1. nginx安装

    第一步

    进入root模式

    yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

    第二步

    1、 解压缩 nginx-xx.tar.gz 包。
    2、 进入解压缩目录,执行./configure
    3、 make && make install

    安装成功之后,在usr中多出来一个文件夹/local/nginx,启动脚本在sbin里面

    第三步

    进入sbin中执行./nginx,然后访问相应IP地址,若是不能访问,则很有可能是防火墙问题,打开防火墙

    #查看开放的端口号
    firewall-cmd --list-all
    #设置开放的端口号
    firewall-cmd --add-service=http --permanent
    sudo firewall-cmd --add-port=80/tcp --permanent
    #重启防火墙
    firewall-cmd --reload
    
  2. nginx常用命令

    #启动命令
    在/usr/local/nginx/sbin 目录下执行 ./nginx
    #关闭命令
    在/usr/local/nginx/sbin 目录下执行 ./nginx -s stop
    #重新加载命令
    在/usr/local/nginx/sbin 目录下执行 ./nginx -s reload
    
  3. nginx配置文件

    • 所在位置/usr/local/nginx/conf

    • nginx配置文件组成

      第一部分:全局块

      worker_processes  1;
      

      这是 Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约

      第二部分:events 块

      events {
          worker_connections  1024;
      }
      

      ​ events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 wordprocess 可以同时支持的最大连接数等。
      ​ 上述例子就表示每个 work process 支持的最大连接数为 1024.
      ​ 这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。

      第三部分: http 块

      http {
          include       mime.types;
          default_type  application/octet-stream;
      
          sendfile        on;
          keepalive_timeout  65;
      
          server {
          	#nginx目前监听80
              listen       80;
              #主机名称
              server_name  localhost;
      		#本地
              location / {
                  root   html;
                  index  index.html index.htm;
              }
      }
      

      这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。
      需要注意的是:http 块也可以包括 http 全局块、server 块。

      • http 全局块

        http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。

      • server 块

        这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了
        节省互联网服务器硬件成本。
        每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。
        而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。
        1、全局 server 块
        最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置。
        2、location 块
        一个 server 块可以配置多个 location 块。
        这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称
        (也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓
        存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

  4. nginx配置实例-反向代理

    实现效果,在浏览器中输入地址www.123.com,跳转到tomcat主页

    准备工作,首先解压tomcat.tar.gz,执行bin文件夹下面的statrtup.sh,然后给防火墙添加8080端口权限

            listen       80;
            #改成ip地址
            server_name  192.168.190.129;
            location / {
                root   html;
                #加上这个url
                proxy_pass http://127.0.0.1:8080;
                index  index.html index.htm;
           }
    
    
  5. nginx配置实例-反向代理2

    实现效果:开启两个不同端口的web服务器,指向不同的页面,

    server {
            listen       9001;
            server_name  192.168.190.129;
    
            location ~ /edu/ {
                 proxy_pass http://127.0.0.1:8080:
            }
            location ~ /vod/ {
                 proxy_pass http://127.0.0.1:8081:
            }
    

    其中location后面使用正则表达式,例如location ~ /edu/表示的是url里面带有edu的url,指向8080端口的web服务器

  6. nginx配置实例-负载均衡

        upstream myserver {
            server 192.168.190.129:8080;
            server 192.168.190.129:8081;
        }
        server {
            listen       80;
            #如果server_name后面是localhost的话,改成本机的ip地址
            server_name  192.168.190.129;
            location / {
                #此时,proxy_pass后面跟上的就是上面配置的别名
                proxy_pass http://myserver;
                root   html;
                index  index.html index.htm;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    

    nginx分配服务器的策略

    • 轮询(默认)

      每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 。

    • weight

      写法:server 192.168.190.129:8080 weight=10;

      weight 代表权重默认为 1, 权重越高被分配的客户端越多

    • ip_hash

      每个请求按访问 ip 的 的 hash 结果分配,这样每个访客固定访问一个后端服务器

    • fair(第三方)

      按后端服务器的响应时间来分配请求,响应时间短的优先分配。

  7. nginx配置实例-动静分离

            location /www/ {
                root   /data/;
                index  index.html index.htm;
            }
    
            location /image/ {
                root   /data/;
                #列出反目录
                autoindex    on;
            }
    

    autoindex on;这个参数可以实现像python -m http.server这样的文件服务器

  8. nginx配置实例-高可用,使用keepalive(待定)

配置文件
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    #使用upstream后面跟上一个别名,下面写上需要代理的服务器
    upstream myserver {
        server 192.168.190.129:8080;
        server 192.168.190.129:8081;
    }
    server {
        listen       80;
        #如果是localhost需要改成本机的IP地址
        server_name  192.168.190.129;
        location / {
            #此时,proxy_pass后面跟上的就是上面配置的别名
            proxy_pass http://myserver;
            root   html;
            index  index.html index.htm;
        }
        location /www/ {
            root   /data/;
            index  index.html index.htm;
        }

        location /image/ {
            root   /data/;
            #列出反目录
            autoindex    on;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    server {
        listen       9001;
        server_name  192.168.190.129;

        location ~ /edu/ {
            proxy_pass http://127.0.0.1:8080;
        }
        location ~ /vod/ {
            proxy_pass http://127.0.0.1:8081;
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值