需求:服务器上面运行多个项目;实现每个二级域名访问对应项目;
服务器:阿里云服务器;域名:阿里云注册;
配置域名解析
即配置DNS解析。一定要首先配置,否则访问不到二级域名;
登录阿里云后台,要在域名解析上面添加主机记录值(即你要设置的二级域名名称)
配置Nginx
进入你的Nginx的 /conf
配置文件夹中,编辑 nginx.conf
文件
文件结构如下:
http {
(全局的配置参数...)
server {
(本server的配置参数...)
}
server {
(本server的配置参数...)
}
(全局的配置参数...)#可添加include vhost/*.conf;
}
关于server位置:
可以将所有的server配置都写在nginx.conf配置文件中;
-
也可另外定义一个文件夹存放配置文件,将配置文件包含进主配置文件中即可;
我的做法:新建一个
vhost
文件夹来放配置文件;在主配置文件写上include vhost/*.conf;
表示主配置文件引用它;
配置server
- 通过代理转发配置:
即通过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端口上运行的项目;
- 通过根目录配置:
你也可以通过指定项目的根目录来配置二级域名:
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