博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Nginx虚拟主机配置

Posted on 2018-11-05 11:06  Tang&An  阅读(3007)  评论(0编辑  收藏  举报

一、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、重启服务、访问验证