通过Nginx为网站配置二级域名并访问指定项目

Posted thegarden

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过Nginx为网站配置二级域名并访问指定项目相关的知识,希望对你有一定的参考价值。

需求:服务器上面运行多个项目;实现每个二级域名访问对应项目;

服务器:阿里云服务器;域名:阿里云注册;

配置域名解析

即配置DNS解析。一定要首先配置,否则访问不到二级域名;

登录阿里云后台,要在域名解析上面添加主机记录值(即你要设置的二级域名名称)

配置nginx

进入你的Nginx的 /conf 配置文件夹中,编辑 nginx.conf 文件

文件结构如下:

http {
    (全局的配置参数...)
    server {
        (本server的配置参数...)
    }
    server {
        (本server的配置参数...)
    }
    (全局的配置参数...)#可添加include vhost/*.conf;
}

关于server位置:

  • 可以将所有的server配置都写在nginx.conf配置文件中;

  • 也可另外定义一个文件夹存放配置文件,将配置文件包含进主配置文件中即可;

    我的做法:新建一个vhost文件夹来放配置文件;在主配置文件写上include vhost/*.conf;表示主配置文件引用它;

配置server

  1. 通过代理转发配置:
    即通过nginx转发到你想访问的项目;
server {
    listen 80;
    server_name demo.test.com;#你的二级域名;
    location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $http_host;
    proxy_pass http://127.0.0.1:8000; #你启动的服务的ip:端口号;
    }
}

这样配置之后可以通过Nginx转发到对应ip端口上运行的项目;

  1. 通过根目录配置:

你也可以通过指定项目的根目录来配置二级域名:

server {
        listen  80;
        server_name  demo.test.com; # 要绑定的域名(或子域名)
        root    /home/www/;     # 该网站的根目录
        location / {            # 不用管
        }
}

重启Nginx

补充

default_server

http {
    # 如果没有显式声明 default server 则第一个 server 会被隐式的设为 default server
    server {
        listen 80;
        server_name _; # _ 并不是重点 __ 也可以 ___也可以
        return 403; # 403 forbidden;
    }
    server {
        listen 80;#添加默认server:在后面加上default_server
        server_name www.a.com;
        ...
    }
}

Nginx 的 default_server 指令可以定义默认的 server 去处理一些没有成功匹配 server_name 的请求;

参考:https://www.cnblogs.com/kuku0223/p/10740735.html

location

可以指定多个项目;

   location /Demo01 {
         ......#项目1;根目录,代理转发
    }
    location /demo02 {
         ......
    }

参考:

https://blog.csdn.net/xuxile/article/details/51705372
https://blog.csdn.net/lizhiyuan_eagle/article/details/90639448

以上是关于通过Nginx为网站配置二级域名并访问指定项目的主要内容,如果未能解决你的问题,请参考以下文章

域名访问网站,对应指定的配置文件里边的域名,防止访问错误

域名解析

使用nginx配置域名及禁止直接通过IP访问网站

使用nginx配置域名及禁止直接通过IP访问网站

nginx在一个服务器上配置两个项目,并通过两个不同的域名访问

tomact配置域名和端口直接访问网站