通过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

posted on 2019-11-21 23:19  passionConstant  阅读(1948)  评论(0编辑  收藏  举报