博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx多域名配置
阅读量:5143 次
发布时间:2019-06-13

本文共 2117 字,大约阅读时间需要 7 分钟。

  我们都知道如果在域名管理的控制面板设置域名对应ip只能设置到ip,不能详细设置到端口。如果一台服务器部署了多个web应用,使用的不同端口启动的,那么就可以Nginx做映射。

  比如我有一个域名 www.525.life;域名还可以分出2级域名: admin.525.life。我在域名控制面板把这两个域名都指向我的服务器公网ip:123.123.123.123。这时候发现www.525.life和admin.525.life域名访问都只是对应到了使用端口80的Web程序(默认的)。如果我们要访问81端口的应用程序只能使用:www.525.life:81或者admin.525.life:81。但是这样很不方便,我们要把端口去掉也能访问就需要使用Nginx做映射。

  我们期望www.525.life访问8880端口,admin.525.life访问8881端口。那么可以设置如下:

server{    listen 80;    server_name www.525.life;    location / {        #....        proxy_pass http://localhost:8880;    }    ##### other directive}server{    listen 80;    server_name admin.525.life;    location / {        #....        proxy_pass http://localhost:8881;    }    ##### other directive}

  这样设置就可以了,把8880和8881都映射到80端口的监听,这样就能使用www.525.life访问8880端口,admin.525.life访问8881端口。

1、每个域名一个conf的写法

  我们在上面的例子中使用的是一个文件多个域名的写法,也就是只使用一个conf,在里面不断的增加server。这种方式很直观,但是域名多了不好管理。

  Nginx支持引入的用法,也就是我们可以在其他地方先新建好conf文件,conf文件中记录server的信息如下:
  admin.conf中的内容是:

server{    listen 80;    server_name admin.525.life;    location / {        #....        proxy_pass http://localhost:8881;    }    ##### other directive}

  www.conf中的内容是:

server{    listen 80;    server_name www.525.life;    location / {        #....        proxy_pass http://localhost:8880;    }    ##### other directive}

  admin.conf和www.conf都放在/data/nginx/conf/vhost目录下。

  然后在nginx.conf中使用引入命令:include  /data/nginx/conf/vhost/*.conf;即可。

  需要注意的是这句命令应该放在:http{}  的花括号内。因为include的命令引入相当于被引入的所有代码写在nginx.conf中一样。

2、301跳转

  我们留意到生活中很多时候不带www也能访问到某个网站,这也能通过Nginx实现。跟上面的配置一样,再增加一个server如下:

server{    listen 80;    server_name  525.life;    location / {        #....        proxy_pass http://localhost:8880;    }    ##### other directive}

  或者进行301跳转

server{    listen 80;    server_name 525.life;    rewrite ^/(.*) http://www.525.life/$1 permanent;}

3、添加404网页

  添加404网页,都可直接在里面添加,如:

server{  listen 80;  server_name www.web126.com; #绑定域名  error_page 404 /404.html;}

4、禁止IP直接访问

  最后还有一个方法需要注意,可能有需要禁止IP直接访问80端口或者禁止非本站的域名绑定我们的IP,这样的话应该如下处理,放到最前一个server上面即可:

server{  listen 80 default;  server_name _;  return 403;}

 

转载于:https://www.cnblogs.com/goloving/p/9363490.html

你可能感兴趣的文章
mysql 数据库迁移
查看>>
PAT-乙级-1021 个位数统计
查看>>
GreenPlum学习笔记:date_part与extract提取日期时间、时间差
查看>>
PHP 练习1:新闻发布
查看>>
【3】Zookeeper中的角色
查看>>
实训0528
查看>>
AXD 的使用以及源代码说明
查看>>
C++学习笔记第三天:类、虚函数、双冒号
查看>>
将10进制数转换为任意进制数进行显示
查看>>
Elasticsearch 环境配置
查看>>
HDU 1074 Doing Homework ( 状态压缩 )
查看>>
《软件工程》阅读笔记之一
查看>>
spark视频-Spark 1.0内核探索
查看>>
word2vec——高效word特征提取
查看>>
12.26冲刺
查看>>
js设计模式-桥接模式
查看>>
函数调用方式
查看>>
Android Studio 生成 Xutils3 注入的插件
查看>>
8th week blog 2
查看>>
LeetCode之Add Two Numbers
查看>>