Linux05 /nginx

1. nginx安装、配置

  • nginx的安装/启动

    1、编译安装nginx

    1.yum install nginx(自动解决依赖),自动将各种包安装到了对应的位置
    查看yum安装各个包所在的位置:rpm -ql nginx
    2.源代码编译安装(优秀,自由选择软件版本,自定义第三方功能比如开启https)--- 使用
    3.rpm手动安装(垃圾)
    # 编译安装步骤:
    1.下载tengine/nginx源码包
    wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz
    wget -c https://nginx.org/download/nginx-1.12.0.tar.gz 2.解压缩源码:
    tar -zxvf tengine-2.3.2.tar.gz 3.编译三部曲
    第一曲:指定安装路径
    ./configure --prefix=/opt/tbnginx/
    第二曲:开始编译,生成makefile
    make
    第三曲:开始安装
    make install 4.配置nginx的环境变量,需要把PATH写入/etc/profile,每次开机都加载
    vim /etc/profile
    PATH="/opt/python367/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/tbnginx/sbin" 5.手动读取,让PATH生效
    source /etc/profile

    2、启动nginx,检查进程,端口

    直接输入nginx命令,第一次是启动nginx
    nginx -s stop # 停止
    nginx -s reload # 平滑重启,不停止进程,重新读取配置文件
    nginx -t # 检测nginx.conf语法是否正确,更安全
  • nginx的配置文件

    1、nginx文件夹下文件介绍

    [root@s24_linux tbnginx]# ls
    conf 存放nginx的配置文件
    html 存放nginx静态文件的
    logs nginx的运行日志,错误日志,访问日志
    sbin 存放可执行命令

    2、nginx配置文件

        # server{}是定义虚拟主机功能
    server {
    # 定义网站的端口
    listen 80;
    # 定义网站匹配的域名
    server_name localhost;
    # server_name _;
    # server_name www.lbzhk.com; # 定义虚拟主机的访问日志功能,记录用户的ip,以及请求信息,和爬虫代理后面的真实ip等功能
    access_log logs/host.access.log main;
    access_log "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G" main;
    # location作用是匹配url,如同 django的 url.py功能一样
    # 最低级匹配,当请求时 192.168.16.85:81/ 就进入如下location
    location / {
    # root关键词 是定义静态文件存放目录的
    root /opt/html;
    # index参数,定义网站首页文件名的
    index index.html index.htm;
    }
    # location可以定义多个,想让 192.168.16.85:81/static/js/jquery.js
    location /static {
    # 给路径添加别名
    alias /opt/crm/static/;
    }

2. nginx的多虚拟主机功能

  • 简单概述:

    1、一台服务器,基于域名的不同,访问不同的网站资料,也就是准备2个server{}的定义

    2、修改本地的hosts文件 C:\Windows\System32\drivers\etc\hosts

  • 第一个server{}虚拟主机 ,www.s1.com

        server {
    # 定义网站的端口
    listen 80;
    # 定义网站匹配的域名
    server_name www.s1.com;
    # server_name _; # 定义虚拟主机的访问日志功能,记录用户的ip,以及请求信息,和爬虫代理后面的真实ip等功能
    access_log logs/host.access.log main;
    access_log "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G" main;
    # location作用是匹配url,如同 django的 url.py功能一样
    # 最低级匹配,当请求时 192.168.16.85:81/ 就进入如下location
    location / {
    # root关键词 是定义静态文件存放目录的
    root /opt/s1html;
    # index参数,定义网站首页文件名的
    index index.html index.htm;
    }
    # 当你的请求时 www.s24pian.com/static/55kai.jpg
    location /static {
    # 给路径添加别名
    alias /opt/crm/static/;
    } }
  • 第二个虚拟主机 www.s2.com

    server {
    listen 80;
    server_name www.s2.com;
    location / {
    root /opt/s2html;
    index index.html;
    }
    }

3. nginx的访问日志功能,404页面功能

  • nginx的访问日志功能,404页面功能,都是打开nginx.conf,打开配置即可

  • 访问日志功能

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main;
    access_log "pipe:rollback logs/access_log interval=1d baknum=7 maxsize=2G" main;
  • 404错误页面优化(找到一个server{}标签的配置,添加一行代码即可 )

    location / {
    # root关键词 是定义静态文件存放目录的
    root /opt/s1;
    # index参数,定义网站首页文件名的
    index index.html index.htm;
    }
    # nginx错误页面的定义
    error_page 404 /404.html;

4. nginx的反向代理、负载均衡

  • 简述

    浏览器客户端  +  nginx反向代理   |  躲在防火墙后面   服务器+django
    1.需要准备3台机器
    1是客户端,发请求的
    2是代理服务器,需要安装nginx,实现代理转发功能
    3是资源服务器,提供数据的 2.正确的操作应该是:
    准备一个windows机器,两个linux机器(一个是安装nginx用作代理,一个启动django提供数据) 3.在一台linux上,启动一个nginx,第一个server{}虚拟主机标签,作用是反向代理
    第二个server{}虚拟主机标签,模拟是另一台linux,提供数据的
  • 配置反向代理

    server {
    listen 80;
    server_name _;
    location / {
    # 反向代理的参数
    proxy_pass http://127.0.0.1:81;
    }
    error_page 404 /404.html;
    }
  • nginx负载均衡

    环境准备,准备四台机器
    
    第一台是window客户端,用于浏览器法请求
    
    第二台个是nginx,安装nginx,进行请求分发,负载均衡 
    
    第三台是服务端,运行django
    
    第四台也是服务端,运行django代码
  • nginx负载均衡的环境准备,nginx.conf配置文件如下

    # 通过upstream关键词,定义服务器地址池
    upstream s1server {
    server 127.0.0.1:81;
    server 127.0.0.1:82;
    server 127.0.0.1:83;
    } # 定义第一个虚拟主机 server{} ,功能是 进行反向代理,负载均衡
    server {
    listen 80;
    server_name _;
    location / {
    proxy_pass http://s1server;
    }
    } # 第二个server,模拟第一台django
    server {
    listen 81;
    server_name _;
    location / {
    root /opt/s1django1;
    index index.html;
    }
    }
    # 定义第三个server,模拟第二台django
    server {
    listen 82;
    server_name _;
    location / {
    root /opt/s1django2;
    index index.html;
    }
    } # 定义第四个server,模拟第三台django,讲道理,这三台django应该提供一样的数据
    server {
    listen 83;
    server_name _;
    location / {
    root /opt/s1django3;
    index index.html;
    }
    }
  • nginx的负载均衡规则

    1.轮训机制 ,每个机器,解析一次
    2.权重机制 ,哪台机器的权重高,请求优先发给谁,有权重比例设置
    3.ip_hash ,针对用户的ip地址得到哈希值,永久发给一台机器 ,ip哈希方式,不得和权重一起用
    4.url_hash ,一般不会使用
    # 通过upstream关键词,定义服务器地址池
    # 权重机制示例:
    upstream s24server {
    server 127.0.0.1:81 weight=1;
    server 127.0.0.1:83 weight=4;
    } # ip_hash示例:
    upstream s24server {
    server 127.0.0.1:81 ;
    server 127.0.0.1:83 ;
    ip_hash;
    }

Linux05 /nginx的更多相关文章

  1. accept_mutex与性能的关系 (nginx)

    注:运行环境CentOS 6+   背景      在对启动了20个worker的nginx进行压力测试的时候发现:如果把配置文件中event配置块中的accept_mutex开关打开(1.11.3版 ...

  2. nginx配置反向代理或跳转出现400问题处理记录

    午休完上班后,同事说测试站点访问接口出现400 Bad Request  Request Header Or Cookie Too Large提示,心想还好是测试服务器出现问题,影响不大,不过也赶紧上 ...

  3. 【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器

    一.反向代理:Web服务器的“经纪人” 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从 ...

  4. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  5. nginx+php的使用

    原文来自:windows下配置nginx+php环境 按照他的步骤走,亲测可用! 但是这里他后面说的根目录可能有些人有点懵. 其实在设置的时候就设置了: 网站根目录就是www这个目录,如果没创建请自行 ...

  6. nginx的使用

    1.nginx的下载 解压后文件目录: 2.nginx的常用命令 nginx -s stop 强制关闭  nginx -s quit 安全关闭  nginx -s reload 改变配置文件的时候,重 ...

  7. nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)

    本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...

  8. windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)

    本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分 ...

  9. nginx源码分析之模块初始化

    在nginx启动过程中,模块的初始化是整个启动过程中的重要部分,而且了解了模块初始化的过程对应后面具体分析各个模块会有事半功倍的效果.在我看来,分析源码来了解模块的初始化是最直接不过的了,所以下面主要 ...

随机推荐

  1. VMWare虚拟机开启时显示模块“Disk”启动失败的解决方案

    找到虚拟机所在的目录, 将 .vmx文件打开 将文件vmci0.present = "TRUE"改为 vmci0.present = "FALSE" 删除以.l ...

  2. 使用Vim写LaTeX代码(Vim+Vimtex+Skim)

    最近在写博客的时候发现对数学公式的支持并不好,于是就想寻找一个解决方案.我本身是一个爱折腾的人,有时尽管有现成的解决方案我有事也不愿意去用.于是多方查找资料,想寻求一个自定义的解决方案,最终把自己的目 ...

  3. 10 种常用 Matplotlib 图的 Python 代码

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 喜欢的朋友欢迎关注小编,除了分享技术文章之外还有很多福利,私信“资料”可以 ...

  4. scanf中的%[^\n]%*c格式

    scanf中的%[^\n]%*c格式 (2011-02-19 16:12:38) 转载▼ 标签:  控制字符 空白字符 字符串 变量 整数 it 分类: C语言编程 文章转载自http://blog. ...

  5. 05[掌握]高可用、集群、持久化、docker 等前置知识点

    高可用 24小时对外提供服务 高并发 同一时间段能处理的请求数 1,中心化和去中心化 1.1,中心化 意思是所有的节点都要有一个主节点 缺点:中心挂了,服务就挂了 中心处理数据的能力有限,不能把节点性 ...

  6. 【部分】ASP.NET MVC5 - 地址栏传参两种方法

    地址栏传参两种方法 1-  Home/Index/88       (后台控制器读取需要一样的参数名称) 2-  Home/Index?id1=88?id2=99    (Request三种接受方法) ...

  7. .NET 开源工作流: Slickflow流程引擎高级开发(七)--消息队列(RabbitMQ)的集成使用

    前言:工作流流程过程中,除了正常的人工审批类型的节点外,事件类型的节点处理也尤为重要.比如比较常见的事件类型的节点有:Timer/Message/Signal等.本文重点阐述消息类型的节点处理,以及实 ...

  8. IntelliJ IDEA快速实现Docker镜像部署

    一.Docker开启远程访问 [root@izwz9eftauv7x69f5jvi96z docker]# vim /usr/lib/systemd/system/docker.service #修改 ...

  9. 什么才是市场急需的前端工程师?要价1.8W,HR不敢还嘴!

    据统计,国外的前端开发人员和后端开发人员比例约1:1,但是在国内比例却在1:3以下, Web前端开发职位人才缺口巨大.前端工程师的发展之路十分有“钱”景. 每天,HR 群都有人在吐槽招不到前端工程师. ...

  10. 飞越面试官(三)--JVM

    大家好!我是本公众号唯一官方指定没头屑的小便--怕屁林.   JVM,全称Java Virtual Machine,作为执行Java程序的容器,几乎代理了Java内存与服务器内存的交互,可以说是程序拥 ...