Nginx多域名配置

  我们都知道如果在域名管理的控制面板设置域名对应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

时间: 2024-11-03 14:01:21

Nginx多域名配置的相关文章

Nginx二级域名配置

Nginx二级域名配置模板 域名一:www.hellosr.com 域名二:daxin.hellosr.com 通过upstream进行负载均衡,通过access_log的配置规范化请求日志输出 配置如下: #运行用户 #user www-data; #启动进程,通常设置成和cpu的数量相等 worker_processes 2; #全局错误日志及PID文件 #error_log /home/nginx/logs/error.log; #pid /home/nginx/logs/nginx.pi

nginx二级域名配置自动跳转到一级域名

nginx二级域名配置自动跳转到一级域名 rewrite配置内容: if ($http_host !~ "^www.aaa.com$") { rewrite ^(.*) http://www.aaa.com$1 permanent; } 下方,nginx代理访问项目proxy_pass,及rewrite参考 server { listen 80; server_name www.aaa.com 100.100.100.100; location / { if ($http_host !

Nginx 多域名配置

nginx绑定多个域名可又把多个域名规则写一个配置文件里,也可又分别建立多个域名配置文件,我一般为了管理方便,每个域名建一个文件,有些同类域名也可又写在一个总的配置文件里.一.每个域名一个文件的写法       首先打开nginx域名配置文件存放目录:/usr/local/nginx/conf/servers ,如要绑定域名www.itblood.com 则在此目录建一个文件:www.itblood.com.conf然后在此文件中写规则,如: 1 2 3 4 5 6 7 server{     

Nginx中文域名配置

中文域名变为Punycode编码即可,在线转码地址:http://tools.jb51.net/punycode/, Punycode? Punycode是一个根据RFC 3492标准而制定的编码系统,主要用於把域名从地方语言所采用的Unicode编码转换成为可用於DNS系统的编码. "中文域名"后缀不被标准的解析服务器支持,需转化为punycode码进行解析. 修改Nginx配置 server { listen 80; server_name blog.linuxeye.com ;.

一台nginx服务器多域名配置

Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了. 下面我就来说说server_name的使用吧: server_name的匹配顺序 Nginx中的server_name指令主要用于配置基于名称虚拟主机,server_name指令在接到请求后的匹配顺序分别为: 1.准确的server_name匹配,例如: server { listen 80; server_name ssdr.info www.s

服务器的多域名配置

1. 常用的WEB服务器有Apache和nginx,小编偏向使用nginx.日常开发机器使用的是windows,本地测试安装的wamp,会用的Apache:生成环境是使用linux,一键安装lnmp,所以使用了nginx. 2. Nginx是一个高性能.轻量级的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. Apache是一款老牌的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一. 3. 首先要

180602-nginx多域名配置

文章链接:https://liuyueyi.github.io/hexblog/2018/06/02/180602-nginx多域名配置/ nginx多域名配置 原来的域名过期了,重新买了一个hhui.top,正好重新的配置一下,针对之前写过的几个不同的东西,通过不同的子域名来进行区分,因此简单记录一下nginx的多域名配置 I. 域名配置 1. 背景 因为资金有限,只有一台服务器,但是这个服务器上干的事情却不止一件,当前的状况是有下面几个 zweb : 一个多媒体工具网站,前端ReactJS写

利用nginx泛域名解析配置二级域名和多域名

利用nginx泛域名解析配置二级域名和多域名 网站的目录结构为 html ├── bbs └── www html为nginx的安装目录下默认的存放源代码的路径. bbs为论坛程序源代码路径 www为主页程序源代码路径 把相应程序放入上面的路径通过 http://www.youdomain.com 访问的就是主页 http://bbs.yourdomain.com 访问的就是论坛 其它二级域名类推. server { listen 80; server_name ~^(?<subdomain>

LNMP第二部分nginx、php配置(用户认证、域名重定向、日志、配置缓存、防盗链)

一.nginx的配置( nginx.conf) 1.nginx的主配置文件位置: /usr/local/nginx/conf/nginx.con 2.清空  /usr/local/nginx/conf/nginx.con默认的配置文件内容 [[email protected] ~]# > /usr/local/nginx/conf/nginx.conf >:重定向的意思,单独使用,可以把一个文本文档快速清空 3.拷贝一下代码到/usr/local/nginx/conf/nginx.conf文件