• 【NGINX】LINUX安装NGINX


    • 安装依赖()
      • · yum install gcc
      • · yum install pcre-devel
      • · yum install zlib zlib-devel
      • · yum install openssl openssl-devel
      • · //一键安装上面四个依赖
      • · yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
    • 下载nginxtar
      • · //创建一个文件夹
      • · cd /usr/local
      • · mkdir nginx
      • · cd nginx
      • · //下载tar包
      • . wget http://nginx.org/download/nginx-1.13.7.tar.gz
      • .//解压tar包
      • tar -zxvf nginx-1.13.7.tar.gz
    • 安装nginx(如果configurexx not found 就在后面加with-xx=路径)
      • · //进入nginx目录
      • · cd /usr/local/nginx
      • · //执行配置命令 注意:--with-http_ssl_module 开启SSL模块,支持Https请求
      • · ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --with-http_stub_status_module --with-http_ssl_module --with-openssl=/home/admin/openssl/openssl-1.1.0e
      • · //执行make命令
      • · make
      • · //执行make install命令
      • · make install
    • Nginx常用命令
      • //测试配置文件
      • 安装路径下的/nginx/sbin/nginx -t
      • //启动命令
      • 安装路径下的/nginx/sbin/nginx
      • //停止命令
      • 安装路径下的/nginx/sbin/nginx -s stop 或者 : nginx -s quit
      • //重启命令
      • 安装路径下的/nginx/sbin/nginx -s reload      
    • //查看进程命令
    • ps -ef | grep nginx
    • //平滑重启
    • kill -HUP Nginx主进程号
    • 配置防火墙
      • //打开防火墙文件
      • sudo vim /etc/sysconfig/iptables
      • //新增行  开放80端口
      • -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
      • //保存退
      • //重启防火墙
      • sudo service iptables restart
    • Nginx虚拟域名配置及测试验证
      • · //编辑nginx.conf
      • · sudo vim /usr/local/nginx/conf/nginx.conf
      • · //增加行
      • · include vhost/*.conf
        //保存退出
      • · //在/usr/local/nginx/conf目录新建vhost文件夹
      • · mkdir vhost
        //创建每个域名的配置
        sudo vim jimisun.com.conf
        //节点中增加入响应的配置 端口转发  或者访问文件系统
    • Nginx启动
      • · //进入nginx安装目录
      • · cd sbin
      • · sudo ./nginx
      • 测试访问

    http://ip地址

    注意:nginx 安装时候报错:make: *** No rule to make target `build', needed by `default'. Stop.

    出现此种情况,是linux系统没有安装先决条件

    1GCC——GNU编译器集合(GCC可以使用默认包管理器的仓库(repositories)来安装,包管理器的选择依赖于你使用的Linux发布版本,包管理器有不同的实现:yum是基于Red Hat的发布版本;apt用于DebianUbuntuyast用于SuSE Linux等等。)

    RedHat中安装GCC

    yum install gcc

    Ubuntu中安装GCC

    apt-get install gcc

    2PCRE库(Nginx编译需要PCREPerl Compatible Regular Expression),因为NginxRewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。这里需要安装两个安装包pcrepcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码,这正是我们需要的理由。)

    RedHat中安装PCRE

    yum install pcre pcre-devel

    Ubuntu中安装PCRE

    apt-get install libpcre3 libpcre3-dev

    3zlib库(zlib库提供了开发人员的压缩算法,在Nginx的各种模块中需要使用gzip压缩。如同安装PCRE一样,同样需要安装库和它的源代码:zlibzlib-devel。)

    RedHat中安装zlib

    yum install zlib zlib-devel

    Ubuntu中安装zlib

    apt-get install zlib1g zlib1g-dev

    4OpenSSL库(在Nginx中,如果服务器提供安全网页时则会用到OpenSSL库,我们需要安装库文件和它的开发安装包(opensslopenssl-devel)。)

    RedHat中安装OpenSSL

    yum install openssl openssl-devel

    Ubuntu中安装OpenSSL:(注:Ubuntu14.04的仓库中没有发现openssl-dev):

    apt-get install openssl openssl-dev

    The ngx_stream_upstream_module module (1.9.0) is used to define groups of servers that can be referenced by the proxy_pass directive.

    Example Configuration

    upstream backend {
        hash $remote_addr consistent;
        server backend1.example.com:12345  weight=5;
        server backend2.example.com:12345;
        server unix:/tmp/backend3;
     
        server backup1.example.com:12345   backup;
        server backup2.example.com:12345   backup;
    }
     
    server {
        listen 12346;
        proxy_pass backend;
    }

    例如:nginx.conf配置详解

    http{

     #虚拟主机1

     server{

      listen       80;

      server_name  www.nginx1.com;

      location / {

         root   html;

         index  index.html index.htm;

      }

     }

     

     #虚拟主机2

     server{

      listen       80;

      server_name  localhost;

      location / {

         root   html;

         index  index.html index.htm;

      }

     }

    }

    这里server_name配置域名的时候,如果是本地测试,需要到windos下hosts文件里,把你的域名和ip添加进去(C:\Windows\System32\drivers\etc\hosts)

    nginx支持三种类型的虚拟主机配置

    • 1、基于ip的虚拟主机, (一块主机绑定多个ip地址)

    server{

      listen       192.168.1.1:80;

      server_name  localhost;

    }

    server{

      listen       192.168.1.2:80;

      server_name  localhost;

    }

      • 2、基于域名的虚拟主机(servername)

    #域名可以有多个,用空格隔开

    server{

      listen       80;

      server_name  www.nginx1.com www.nginx2.com;

    }

    server{

      listen       80;

      server_name  www.nginx3.com;

    }

      • 3、基于端口的虚拟主机(listen不写ip的端口模式)

    server{

      listen       80;

      server_name  localhost;

    }

    server{

      listen       81;

      server_name  localhost;

    }

    server下的location映射解析(官方中文文档:ngx_http_core_module)匹配规则:location [ = | ~ | ~* | ^~ ] uri { ... }

    location URI {}:

    对当前路径及子路径下的所有对象都生效;

    location = URI {}:

    精确匹配指定的路径(注意URL最好为具体路径),不包括子路径,因此,只对当前资源生效;

    location ~ URI {}:

    location ~* URI {}:

    模式匹配URI,此处的URI可使用正则表达式,~区分字符大小写,~*不区 分字符大小写;

    location ^~ URI {}:

    不再检查正则表达式

    优先级:= > ^~ > ~|~* > /|/dir/

    举例:

    location = / {

        [ configuration A ]

    }

     

    location / {

        [ configuration B ]

    }

     

    location /documents/ {

        [ configuration C ]

    }

     

    location ^~ /images/ {

        [ configuration D ]

    }

     

    location ~* \.(gif|jpg|jpeg)$ {

        [ configuration E ]

    }

    解答:请求“/”匹配配置A, 请求“/index.html”匹配配置B, 请求“/documents/document.html”匹配配置C, 请求“/images/1.gif”匹配配置D, 请求“/documents/1.jpg”匹配配置E

    location配置规则

    1、“ =”前缀的指令严格匹配这个查询。如果找到,停止搜索。 
    2、所有剩下的常规字符串,匹配最精确的(一般最长的那个)。如果这个匹配使用^〜前缀,搜索停止。 
    3、正则表达式,在配置文件中是从上往下匹配的 
    4、如果第3条规则产生匹配的话,结果被使用。否则,如同从第2条规则被使用 
    特殊情况: 
    两种情况下,不需要继续匹配正则 location : 
    ( 1 ) 当普通 location 前面指定了“ ^~ ”,特别告诉 Nginx 本条普 通 location 一旦匹配上,则不需要继续正则匹配。 
    ( 2 ) 当普通location 恰好严格匹配上 ,不是最大前缀匹配,则不再继续匹配正则

    另外nginx的反向代理Tengine(Nginx的升级版)的健康检查 也用到了location知识,可以去看看

  • 相关阅读:
    js学习总结----案例之拖拽
    面向对象-数据属性
    Apply和call方法-扩充函数赖以生存的作用域
    JS中的function
    JS数组
    JS需要注意的细节和一些基础知识
    策略模式+简单工厂模式
    多态
    MVC3学习 八 Action和result过滤器及日志处理
    MVC3学习 七 JQuery方式和微软自带的AJAX请求
  • 原文地址:https://www.cnblogs.com/lucas1024/p/9533262.html
Copyright © 2020-2023  润新知