• Nginx虚拟主机配置


    一、Nginx的编译安装

       #yum -y install pcre-devel openssl-devel   安装依赖包

      下载软件源码包

      #tar xf nginx-1.10.2.tar.gz -C /usr/src   解压缩包

      useradd -s /sbin/nologin -M www  创建程序用户www

      cd /usr/src/nginx-1.10.2    进入解压目录  

      ./confingure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

      http_stub_status_module  记录nginx基本访问状态信息等的模块   http_ssl_module  用于加密的http连接

      make && make install   编译安装

      ln -s /usr/local/nginx/sbin/* /usr/local/sbin    创建软连接

      /usr/local/nginx/sbin/nginx      启动nginx

     

    二、Nginx的主配置文件./nginx/conf/nginx.conf

     1、 主配置文件的核心框架

      

    全局配置指令

     

    User                    

    配置worker进程的用户用户组

    Worker_processes

    指定worker进程启动的数量,这些进程用于处理客户的所有连接。其数量选择取决于服务器环境、磁盘子系统及网络基础设备。一般与CPU绑定的负载处理器核心的数量相同,并以1.5~2.0乘以这个数作为I/O密集型负载

    Error_log

    是所有错误写入的文件,如果在其他区段没有设置该参数,那么这个日志 文件将记录所有的错误。

    pid

    记录主进程ID的文件,这个设置将会覆盖编译时的默认配置。

    use

    用于指示使用什么样的连接方式。这个设置将会覆盖编译时的默认配置。

    Worker_connections

    配置一个工作进程能够接受并发连接的最大数。

      2、Nginx的虚拟主机类型及配置实战

        这里的“主机”是指主配置文件中的server块对外提供的虚拟主机,每一个server块代表一个虚拟主机,以“域名”、“IP”、“端口号”做区分,虚拟主机可以分为与之相对应的三种类型。

      2.1 基于域名的虚拟主机

      配置不同域名的虚拟主机

      

      修改配置文件后检查配置文件,并重启Nginx服务

      

      创建网页目录与网站的首页文件

      mkdr -p /usr/local/nginx/html/server1/local1

           

      

     添加本地映射,curl访问测试

      

      

      在本地PC添加映射浏览器访问

        

      

       

      

     三、Nginx Locations 代码块

      Locations 定义如下:

        locations [modifier] urii {...}

      当一个请求进入时,uri 会被检测匹配一个最佳的locations(下表中的修饰符(modifier)会影响locationds的处理)。

    顺序

    匹配标识的location

    匹配说明

    1

    " location = / { "

    精确匹配

    2

    " location ^~ /images/ { "

    先进行字符串的前缀匹配,如果匹配到就不做正则匹配检查

    3

    " loction ~* .(gif | jpg | jpeg)$ { "

    正则匹配,*为不区分大小写

    4

    " location /documents/ { "

    匹配常规字符串,模糊匹配,如果有正则检查,正则优先

    5

    " location / { "

    所有location都不能匹配后的默认匹配原则

      一般,当一个请求进入时,会与所有locations进行匹配,首先会进行精确匹配,若匹配不成功,将会进行字符串的前缀匹配,依次进行正则匹配、匹配常规字符串模糊匹配,若以上匹配都不成功,将会执行默认匹配。

       

         

    四、Nginx访问日志轮询切割

      默认情况下Nginx会把所有的访问日志生成到一个指定的访问日志文件access.log里,这样时间长了会使得该日志太大,比便于日志的分析与处理,因此,有必要对Nginx日志,通过定时任务按规定时间进行切割,使其分成不同的文件保存。

      创建轮询切割脚本

      

      通过定时任务每天凌晨00时执行一次脚本

           00 00 * * * /bin/bash /server/scripts/cut_nginx_log.sh >/dev/null 2>&1

      测试定时任务

       

         

      修改系统时间

      

      查看定时任务执行结果

      

     五、Nginx rewrite

      Nginx rewrite的主要功能也是实现URL地址重写。Nginx的rewrite规则需要PCRE软件的支持,即通过Perl兼容正则表达式语法进行规则匹配。默认参数编译时,Nginx就会安装支持rewrite的模块,但是,也必须要有PCRE软件的支持。

      指令语法:rewrite regex replacement 【flag】;一个简单的URL rewrite跳转例子:

    rewrite ^/(.*) http://www.baidu.com/$1  permanent;

      rewrite为重写参数,regex部分“^/(.*) http://www.baidu.com/$1” $1取正则()部分的值,即www, flag的值如下表:

      

            

         

                

    六、访问认证

      1、创建密码文件

       # which htpasswd  如果没有,yum安装 #yum -y install httpd

       # htpasswd -bc /usr/local/nginx/conf/htpasswd yunjisuan 123123

            

      2、在配置文件里加入两条配置信息

          auth_basic      "yunjisuan training"; 

              auth_basic_user_file    /usr/local/nginx/conf/htpasswd;

              

          3、重启服务、访问验证

      

      

  • 相关阅读:
    树莓派相关知识
    yum mysql 需要:libsasl2.so.2()(64bit)的解决办法
    python 虚拟环境
    pip 查看某个包有哪些版本并升级
    C# DiagnosticSource and DiagnosticListener
    C# IObservable与IObserver观察者模式
    Visual Studio编译正常,但仍显示红线(Visual studio compiles fine but still shows red lines)
    查看PDB Guid 工具 dumpbin.exe 路径
    VMware vSphere 7.0 安装教程
    gacutil.exe 文件路径
  • 原文地址:https://www.cnblogs.com/tang-j-l/p/9907982.html
Copyright © 2020-2023  润新知