• Linux05 /nginx


    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:WindowsSystem32driversetchosts

    • 第一个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;
      	}
      
  • 相关阅读:
    wzplayer for android界面
    player stop处理
    wzplayer for android界面
    android屏幕监控上下左右滑动
    OpenGL + C++ + Java
    player stop处理
    EGLHelper
    Android NDK学习 <五> C++ 支持
    【认识之初】
    Java调用windows exe程序
  • 原文地址:https://www.cnblogs.com/liubing8/p/11803335.html
Copyright © 2020-2023  润新知