Nginx的虚拟主机配置,Nginx的rewrite

Nginx的虚拟主机的配置

虚拟主机:当一个机器上要跑多个站点,即多个域名的时候,这就需要虚拟主机来定义

配置虚拟主机,先将主配置文件下的server注释掉,添加一个include vhost/*.conf

在这里插入图片描述

再在conf目录下创建一个vhost目录
我有两个站点:www.1.com ,www.2.com

编写两个虚拟主机配置文件:

[root@shuai-01 vhost]# vim www.1.com.conf

server {
    listen 80;
    server_name www.1.com;
    root /data/wwwroot/www.1.com;
}

[root@shuai-01 vhost]# vim www.2.com.conf

server {
    listen 80;
    server_name www.2.com;
    root /data/wwwroot/www.2.com;
}   

两个的网站目录:

[root@shuai-01 vhost]# mkdir /data/wwwroot/www.1.com/
[root@shuai-01 vhost]# mkdir /data/wwwroot/www.2.com/

[root@shuai-01 vhost]# echo "www.1.com" > /data/wwwroot/www.1.com/index.html
[root@shuai-01 vhost]# echo "www.2.com" > /data/wwwroot/www.2.com/index.html

访问测试:

[root@shuai-01 vhost]# curl -x127.0.0.1:80 www.1.com

www.1.com
[root@shuai-01 vhost]# curl -x127.0.0.1:80 www.2.com
www.2.com

设置一个默认虚拟主机,将所有访问错误的域名都给deny掉,不让访问:

没设置前:
[root@shuai-01 vhost]# curl -x127.0.0.1:80 www.3.com
www.1.com
设置:
[root@shuai-01 vhost]# vim default.conf

server {
    listen 80 default_server;
    deny all;
}

设置后:
[root@shuai-01 vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@shuai-01 vhost]# /usr/local/nginx/sbin/nginx -s reload
[root@shuai-01 vhost]# curl -x127.0.0.1:80 www.3.com
<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.14.0</center>
</body>
</html>

Nginx默认虚拟主机
不管什么域名解析到该服务器,都会访问到默认虚拟主机
nginx.conf中第一个server { }
或 listen 80 default_server;
泛解析 *.aming.com
Nginx虚拟主机配置规范
主配置文件include虚拟主机配置文件
在conf目录下创建vhost目录,在vhosts目录下面定义虚拟主机配置
Nginx基于端口的虚拟主机
listen端口不同,server_name可以相同

nginx的rewrite

域名跳转(重定向)、URL重写(伪静态)、动静分离(跳转域名,并接入CDN实现加速)
依赖PCRE库
模块:ngx_http_rewrite_module

Rwrite相关指令:

  • if (条件) { command }
    格式:if (条件判断) { 具体的rewrite规则 }
    条件判断类容由内置变量逻辑判断符号目标字符串组成
    内置变量是Nginx提供的。如:$request_method(请求方法),$request_uri(uri)
    逻辑判断符号:=(等于),!=(不等于), ~(匹配),~*(不区分大小写匹配),!~(不匹配),!~*(不区分大小写的不匹配)

    具体if指令格式详解

  • break和last
    nginx的location匹配是从上到下一直匹配完的,匹配到了还要继续执行下面的。break和last都有跳出匹配,break跳出是不执行下面的location,last跳出本location,还继续执行下面的location
    break和last详解

  • return 后面跟状态码、URL、text(支持变量)
    直接写状态码,状态码(301,302)后面跟URL,状态码后面跟变量(字符串或json)
    return指令详解

  • rewrite规则
    该指令一般用于对请求的客户端直接返回响应状态码。在该作用域内return后面的所有nginx配置都是无效的。
    可以使用在server、location以及if配置中。
    除了支持跟状态码,还可以跟字符串或者url链接。
    rewrite规则详解

rewrite_log定义rewrite日志 rewrite_log on; 写到error_log notice级别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值