• Nginx的安装及配置


    Nginx

    Nginx是个web服务器,常用作静态文件服务器,反向代理服务器,邮件代理服务器,负载均衡服务器

     

    Nginx安装

    1. 安装淘宝nginx,编译安装,先解决模块依赖

     yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y

    2. 获取淘宝nginx的源代码

     wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz

    3. 解压缩源代码包

     tar -zxvf tengine-2.3.2.tar.gz

    4. 进入源代码目录开始编译三部曲

     ①指定安装路径

      ./configure --prefix=/opt/tngx

     ②编译且安装

      make && make install

     ③安装完成之后,进入Nginx的目录

      [root@localhost tngx]#pwd

      /opt/tngx

      [root@localhost tngx]#ls

      conf html logs sbin

      • conf    存放配置文件
      • html    存放前端页面
      • logs    nginx的运行日志
      • sbin    nginx的可执行命令目录

      进入sbin目录

      [root@localhost tngx]#cd sbin

      • ./nginx    启动Nginx
      • ./nginx -s stop    停止Nginx
      • ./nginx -t    检查nginx.conf的语法是否正确
      • ./nginx -s reload    不重启Nginx,重新加载Nginx配置

     

    Nginx配置

    配置文件为conf目录下的nginx.conf

    Nginx虚拟主机

    http {
        #nginx支持多虚拟主机,只需要写入多个server关键字即可
        #虚拟主机1
        server {
        #基于端口的虚拟主机区分
        listen       80;
        #基于域名的虚拟主机区分
        server_name www.asdf.com;
        #charset koi8-r;
        #access_log logs/host.access.log main;
        #access_log "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G" main;

        #这里是nginx的url匹配,如同django的url一样
        #当请求 http://192.168.182.130:80/abc.jpg 这样的url时,就进入如下location匹配
        #这个是最低级的匹配,所有请求都会走到这里
        location / {
            #root关键字定义虚拟主机的根目录,这里是可以修改的
            root   /opt/abc/;
            #index参数定义首页文件的名字
            index index.html;
        }
      }

        #虚拟主机2
        server {
        #基于端口的虚拟主机区分
        listen       81;
        #基于域名的虚拟主机区分
        server_name www.qwer.com;
        #charset koi8-r;
        #access_log logs/host.access.log main;
        #access_log "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G" main;
        #这里是nginx的url匹配,如同django的url一样
        #当请求 http://192.168.182.130:81/xyz.jpg 这样的url时,就进入如下location匹配
        #这个是最低级的匹配,所有请求都会走到这里
        location / {
            #root关键字定义虚拟主机的根目录, 这里是可以修改的
            root   /opt/xyz/;
            #index参数定义首页文件的名字
            index index.html;
        }
      }
    }

    Nginx错误页面404优化

    server {
        listen 80;
        server_name www.asdf.com;  
        #通过error_page参数定义即可
        #404.html文件的相对路径为root定义的目录
        error_page 404             /404.html;
        location / {
            root   /opt/abc/;
            index index.html;
        }
      }

    Nginx反向代理

    • 环境准备

      • 机器1 192.168.182.130,代理服务器

      • 机器2 192.168.182.131,资源服务器

    • 反向代理服务器配置如下

      在代理服务器的配置文件中,找到server{}虚拟主机,在location内设置proxy_pass参数

      server {
          listen       80;
          server_name www.asdf.com;
          #charset koi8-r;
          #access_log logs/host.access.log main;
          #access_log "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G" main;
          location / {
              #实现反向代理的功能参数
              #实现反向代理的功能参数
              #实现反向代理的功能参数
              proxy_pass http://192.168.182.131;
          }
      }

    Nginx负载均衡

    • 环境准备

      • 1台负载均衡服务器

        • 192.168.182.130 负载均衡服务器

      • 2台资源服务器

        • 192.168.182.131 资源服务器1

        • 192.168.182.132 资源服务器2

    • 在负载均衡服务器配置文件中,定义upstream负载均衡池

      #默认轮询方式
      upstream test {
          server 192.168.182.131;
          server 192.168.182.132;
      }

      #权重方式
      upstream test {
          server 192.168.182.131 weight=4;
          server 192.168.182.132 weight=1;
      }

      #ip哈希方式,根据用户的来源ip计算出哈希值,永远只指派给一个服务器去解析
      #ip哈希不得与权重共同使用
      upstream test {
          server 192.168.182.131;
          server 192.168.182.132;
          ip_hash;
      }
    • server{}虚拟主机在location内设置proxy_pass参数,将请求转发给负载均衡池

      server {
          listen       80;
          server_name www.asdf.com;
          #charset koi8-r;
          #access_log logs/host.access.log main;
          #access_log "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G" main;
          location / {
              #root   /opt/abc/;
              #index index.html;
              #请求转发给负载均衡池
              #请求转发给负载均衡池
              #请求转发给负载均衡池
              proxy_pass http://test;
          }
      }

     

  • 相关阅读:
    从Java小白到收获BAT等offer,分享我这两年的经验和感悟
    我的Java秋招面经大合集
    从零基础到拿到网易Java实习offer,我做对了哪些事
    设计模式常见面试知识点总结(Java版)
    如何才能够系统地学习Java并发技术?
    这些喜闻乐见的Java面试知识点,你都掌握了吗?
    Java集合类常见面试知识点总结
    用大白话告诉你 :Java 后端到底是在做什么?
    16-使用Selenium模拟浏览器抓取淘宝商品美食信息
    15-分析Ajax请求并抓取今日头条街拍美图
  • 原文地址:https://www.cnblogs.com/lizhongren/p/12567758.html
Copyright © 2020-2023  润新知