nginx 介绍、安装、配置

nginx 介绍、安装、配置

文章目录

  • nginx 介绍、安装、配置
    • 1. nginx 介绍
      • 1.1 nginx 作用
      • 1.2 nginx 优势
    • 2. nginx的下载和安装
    • 3. nginx相关配置\操作\使用
      • 3.0 配置文件
      • 3.1 基本操作命令
      • 3.2 如何部署静态网页
      • 3.3 nginx的反向代理
        • 3.3.1 域名和IP
        • 3.3.2 域名解析
        • 文件配置
      • 3.4 负载均衡
    • Nginx参考文档

1. nginx 介绍

  • 全称engine x,俄罗斯人开发

1.1 nginx 作用

  • http服务器

    • 可以处理http协议
  • 反向代理服务器

    • 正向代理: 代理服务器为用户服务
    • 反向代理: 为服务器服务
  • 正/反向代理区别

    • 正向代理:

    • 墙内用户是为在防火墙内用户提供访问外网

    • 缓冲特性减少网络使用率

    • 反向代理

    • 防火墙后面的服务器给用户访问

  • 邮件服务器

    • IMAP/POP3/SMT

1.2 nginx 优势

  • 更快

    • 高峰期nginx可以比其它web服务器更快的响应请求
  • 高扩展

    • 低耦合设计的模块组成,丰富的第三方模块
  • 高可靠

    • 经过大批网站的检验
    • 每个worker进程相对独立,出错之后可以快速启动新的worker
  • 低内存消耗

    • 一般情况下,10000个非活跃的http keep-alive连接在nginx仅仅消耗2.5m内存
  • 单机支持10万以上的并发连接

    • 取决于内存,10万远没有封顶
  • 热部署

    • master 和 worker 的分离设计,可实现7x24小时不间断服务的前提下升级 nginx 可执行文件
  • BSD许可协议

2. nginx的下载和安装

  • 下载:

    • 官网: http://nginx.org
    • Nginx 下载:版本1.10.3
    • Nginx 依赖:
    1. OpenSSL(数据加密):版本1.0.1t
    2. PCRE下载(解析正则表达式):版本8.40
    3. ZLib下载(压缩和解压缩):版本1.2.11
  • 安装:

    • 安装 OpenSSl
      1. 解压缩
      2. ./configure
      3. make
      4. sudo make install
    • zlib\nginx\pcre 安装步骤同 OpenSSL

3. nginx相关配置\操作\使用

3.0 配置文件

  • 配置文件位置: /usr/local/nginx/conf

    • nginx.conf
  • 配置文件组织结构:

     _______
     |main__|
       |  |		  ______	
       |  |______|http__|
       |  			  |		 _________		
       | 			  |______|server__|
       |  			  			    |	   __________
       |							|______|location_|
       |	  ____
       |_____|mail|
    
      1. main: 整个配置文件
      2. http: 处理web请求
      ```
      	- server: 代表一个web服务器
      		- location:
      			- web服务器需要处理的一个指令
      			```
      3. mail: 处理邮件相关的协议
    
  • 配置

    • event 里面添加 use epoll; //Linux2.6以后支持epoll(高并发使用)
    • listen : 设置默认端口
    • server_name : localhost,必须写域名,不能写ip
    • location 中: 1. root:浏览器访问的根文件夹; index :网页索引,现在第一个,第一个找不到就去找第二个
  • 启动nginx位置: /usr/local/sbin/

  • 启动: sudo /usr/local/nginx/sbin/nginx

3.1 基本操作命令

  • 启动: sudo /usr/local/nginx/sbin/nginx

    1. 可以创建软连接到环境变量(可以用$PATH 命令查询目录),便可以直接 sudo nginx: sudo ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
  • 关闭

    • sudo nginx -s stop (强制关闭)
    • sudo nginx -s quit(做完当前任务后关闭)
  • 热部署

    • 重新部署(比如修改了配置文件)
    • sudo nginx -s reload

3.2 如何部署静态网页

  • 把静态网页放入/usr/local/nginc/html
  • 可以自己新建一个目录(和html平级),打开nginx.conf 写一个:
    location / {
    	root demo:
    	index first.html;
    }
    
    location /second.html { // '/second.html'需要在添加在浏览器访问的域名后面,如果'/'后面是一个目录,后面也必须添加一个'/',eg:'/hello/'(hello为一个目录)
    root demo;
    index second.html; // index 和location 后面的必须一样,但可以不写
    

}
```

3.3 nginx的反向代理

  • 有多台服务器(一台服务器没用必要,反向代理的目的是为了多台服务器负载均衡)
  • 准备:
    • 反向代理服务器: 宿主机
    • 两台web服务器:一台:zyl: 192.168.137.130 另一台:zyl: 182.168.137.128

3.3.1 域名和IP

  • 域名:例如:www.baidu.com
  • IP : 例如: 192.168.1.1
  • 用域名绑定IP,IP被动,因此可以多个域名绑定一个IP,而一个域名只能绑定一个IP

3.3.2 域名解析

  • 当浏览器输入域名时会经过DNS解析服务器解析并返回一个IP,然后通过IP去访问服务器
  • Pod DNS+
    • 首选: 119.29.29.29
    • 备选: 182.254.116.116
  • 114DNS:
    • 首选: 114.114.114.114
    • 备选: 114.114.114.115
  • 阿里 AliDNS:
    • 首选: 223.5.5.5
    • 备选: 223.6.6.6
  • hosts 文件
    • windows: C:\Windows\System32\drivers\etc\hosts
    • linux: /etc/hosts

文件配置

  • 多台服务器,通过反向代理。使得多台服务器负载均衡
  • 设置示例:
    • Windows(反向代理服务器)
    • 被代理服务器 一台: 192.168.137.130 另一台: 182.168.137.128
  • 修改配置文件
    • 配置文件位置:解压目录中的nginx1-10-3/conf/nginx.conf
    • 配置内容:
    # 设置反向代理
    upstream zyl1.tst {
        server 192.168.137.130:80;
    }
    # 配置要代理的服务器信息
    # zyl: 192.168.137.130
    server {
        # 监听端口
        listen 80;
        # 通过什么域名去访问
        server_name zyl1.com; # 需要在hosts文件中去设置IP对应关系
        location / {
            # 设置代理
            proxy_pass http://zyl1.tst;
        } 
    }
    # 设置另一台主机
    # upstream模块后zyl2.tst 和 proxy_pass 对应
    upstream zyl2.tst {
    server 192.168.137.128:80;
    }
    server {
    listen 80;
    server_name zyl2.com;
    location / {
        proxy_pass http://zyl2.tst;
    }
    }
    
    • 工作流程:
  1. 通过浏览器去访问zyl2.com
  2. 服务器找location模块
  3. 设置一个proxy_pass + url (url自己编一个,服务器内部使用,不对用户)
  4. 通过url去找upstream模块
  5. 然后找到对应IP
- 重新加载配置 : `nginx -s reload`
- 测试:访问 zyl1.com 和 zyl2.com 是否成功

3.4 负载均衡

  • 负载均衡在反向代理的基础上进行
  • 删去配置文件中其中一个serve,需要一个即可
  • 根据一个域名去访问多台服务器
  • 配置具体如:
#-------------------------------------------

# 设置负载均衡时删去
  #  # 设置反向代理
  #  upstream zyl1.tst {
  #      server 192.168.137.130:80;
#
  #  }
  #  # 配置要代理的服务器信息
  #  # zyl: 192.168.137.130
  #  server {
  #      # 监听端口
  #      listen 80;
  #      # 通过什么域名去访问
  #      server_name zyl1.com; # 需要在hosts文件中去设置IP对应关系
  #      location / {
  #          # 设置代理
  #          proxy_pass http://zyl1.tst;
  #      } 
#
  #  }


    # 设置另一台主机
    # 根据需要访问localhost会分配主机
    upstream zyl.tst { 
    # 不设置weight时 默认权重一样
    # 设置128概率5/6,130概率1/6
    server 192.168.137.128:80 weight=5;
    server 192.168.137.130:80 weight=1;
    }
    server {
    listen 80;
    server_name localhost;
    location / {
        proxy_pass http://zyl.tst;
    }
    }


# -------------------------------------------

Nginx参考文档

  • 官网
  • 中文翻译版(淘宝)

你可能感兴趣的:(+基础,+项目导向,-----CloudDisk)