共计 1537 个字符,预计需要花费 4 分钟才能阅读完成。
一个服务器需要挂载多个项目【重点是都能通过域名访问】
实现原理:
1. 当前市面上看到的一些服务器,开放的端口一般都要求为 ’80’ 端口 所以 80 端口成了商用端口
2. 域名的绑定是绑定一个一般是绑定你的服务器 ip 地址
3. 使用服务器的 80 端口拦截访问的域名是什么跳转至服务器的其他
举例
- 只有一台服务器,一个 IP;
- 服务器上有多个应用运行在不同的端口。例如:
- 127.0.0.1:4000 运行着一个博客应用
- 127.0.0.1:3009 运行着一个微信公众号机器人的后台希望不同的域名,都解析到该 IP 的 80 端口,但是转发到不同的端口去:
- www.baidu.com 能访问到 127.0.0.1:4000 的应用
- 新增一个 Ai.baidu.com 能访问到 127.0.0.1:3009 的微信后台(微信要求绑定服务器时绑定的是 80 端口)
这里给出 Nginx 的几个命令 更改之后需要重启你的 Nginx 反向代理!
(1)vim 编辑 nginx 的 nginx.conf(反向代理配置文件)
sudo vi /etc/nginx/nginx.conf
(2)使用下面命令安装 nginx
yum install nginx
(3)启动 Nginx
service nginx start
或
systemctl start nginx.service
(4) 重启 nginx
service nginx restart
具体步骤
1. 在 Nginx 的 conf 中添加 upstream
指向第二个应用的本机地址。
upstream baidu{
server 127.0.0.1:3009;
}
附上原有的第一个应用的 upstream。
upstream Ai.baidu{
server 127.0.0.1:3009;
}
2. 在 Nginx 的 conf 中添加二级域名主机头 80 端口的侦听
PS:本例中,要新添加的解析二级域 Ai.baidu.com
端口号为 80
server_name 精确匹配到二级域名(本例中为 Ai.baidu.com。其他规则或 www 也可以,只要与域名商处解析行为一致即可)
再给 conf 添加如下 1 个 server:
server {
listen 80;
server_name www.baidu.com;
location / {
proxy_pass http://baidu;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name Ai.baidu.com;
location / {
proxy_pass http://Ai.baidu;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
: