专栏首页运维小白12.9 Nginx域名重定向

12.9 Nginx域名重定向

Nginx域名重定向目录概要

  • 更改test.com.conf
server
{
    listen 80;
    server_name test.com test1.com test2.com;
    index index.html index.htm index.php;
    root /data/wwwroot/test.com;
    if ($host != 'test.com' ) {
        rewrite  ^/(.*)$  http://test.com/$1  permanent;
    }
}
  • server_name后面支持写多个域名,这里要和httpd的做一个对比
  • permanent为永久重定向,状态码为301,如果写redirect则为302

Nginx域名重定向

  • 在Nginx里“server_name” 支持跟多个域名;但是Apache“server_name”只能跟一个域名,需要跟多个域名,需要使用Alisa;
  • 在Nginx的conf配置文件里“server_name ” 设置了多个域名,就会使网站的权重变了,到底需要哪个域名为主站点,所以需要域名重定向
  1. 修改配置文件vim /usr/local/nginx/conf/vhost/test.com.conf,(这里删除用户认证那一块代码)
[root@hf-01 vhost]# vim test.com.conf

server
{
    listen 80;
    server_name test.com test1.com test2.com;
    index index.html index.htm index.php;
    root /data/wwwroot/test.com;
    if ($host != 'test.com' ) {
        rewrite  ^/(.*)$  http://test.com/$1  permanent;
    }
}
保存退出
  • if ($host != ‘test.com’ ) //假如域名,“!=”不等于 test.com,将执行下面的脚本
  • rewrite ^/(.)$ http://test.com/$1 permanent; // ^/(.)$ 正式写法 http://$host/(.*)$ 这段可以直接省略掉的,同时还可以加上一些规则,
  • permanent 就是301的意思
  • 如果想弄成302,只需要更改为 redirect
  1. 检查配置文件语法错误,并重新加载配置文件
[root@hf-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@hf-01 vhost]# /usr/local/nginx/sbin/nginx -s reload
[root@hf-01 vhost]# 
  1. 测试,用test2.com去访问,会看到显示301,给它重定向到了http://test.com/index.html
[root@hf-01 vhost]# curl -x127.0.0.1:80 test2.com/index.html -I
HTTP/1.1 301 Moved Permanently
Server: nginx/1.12.1
Date: Wed, 03 Jan 2018 22:23:52 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: http://test.com/index.html

[root@hf-01 vhost]# 
  1. 定义一个不同的网址再来测试访问
[root@hf-01 vhost]# curl -x127.0.0.1:80 test2.com/admin/index.html -I
HTTP/1.1 301 Moved Permanently
Server: nginx/1.12.1
Date: Wed, 03 Jan 2018 22:25:57 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: http://test.com/admin/index.html

[root@hf-01 vhost]# 
  1. 它会访问默认虚拟主机
  2. 这时若是随意访问一个不存在的网址,则会显示404
[root@hf-01 vhost]# curl -x127.0.0.1:80 hanfeng.com/admin/index.html -I
HTTP/1.1 404 Not Found
Server: nginx/1.12.1
Date: Wed, 03 Jan 2018 22:27:37 GMT
Content-Type: text/html
Content-Length: 169
Connection: keep-alive

[root@hf-01 vhost]# 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 12.13 Nginx防盗链

    Nginx防盗链目录概要 配置如下,可以和上面的配置结合起来 location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc...

    运维小白
  • Linux基础(day50)

    12.10 Nginx访问日志 Nginx访问日志目录概要 日志格式 vim /usr/local/nginx/conf/nginx.conf //搜索log_...

    运维小白
  • 12.12 静态文件不记录日志和过期时间

    静态文件不记录日志和过期时间目录概要 配置如下 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { ...

    运维小白
  • Linux基础知识之文件隐藏属性

    这几天温习下 Linux 基础知识,基础里面较为薄弱的知识点我会在这里记录一下,以便回头查看 ---- Linux 下的文件除了权限属性,还有一些隐藏属性,必须...

    张戈
  • 一定要知道的,那些Linux操作命令(二)

    王豆豆
  • rhel7.3 安装配置 VNC 详解

    VNC( Virtual Network Computing)允许Linux系统,实现可以像Windows中的远程桌面访问那样访问Linux桌面。本文配置是在r...

    孙杰
  • 渗透系列之SSRF漏洞

    https://_thorns.gitbooks.io/sec/content/ssrf_tips.html

    贝塔安全实验室
  • 一定要知道的,那些Linux基本操作命令(一)

    王豆豆
  • Day 2-Java-imooc-10-多态

    课程地址:http://www.imooc.com/learn/124 总结图片来自 http://www.imooc.com/article/10715 ?...

    杨熹
  • Linux 常用命令——文件处理命令

    说明: 1.当有多个选项时,可以写在一起 2.简化选项等于完整选项 -a = -all

    喝茶去

扫码关注云+社区

领取腾讯云代金券