Nginx 根据不同域名做路由转发
需求
假设现在有一个顶级域名ouou.com和三个二级域名default.ouou.com,blog.ouou.com,white.ouou.com,这4个域名都跟同一个IP进行绑定。三个二级域名分别对应三个不同的项目,我们希望通过不同二级域名访问服务器,用Nginx做路由转发,到达不同的项目首页。默认顶级域名与default.ouou.com到达同一个页面。
注:不一定是二级域名,可以是任意域名
环境
Nginx:1.20.1
Linux操作系统:CentOS7
配置host文件
本文实验环境在虚拟机上进行,如果使用服务器,应该用真实域名绑定到服务器ip
首先在windows文件系统中找到hosts文件:C:\Windows\System32\drivers\etc\hosts
将4个域名绑定到服务器一的ip,要知道域名只能绑定到ip而不能指定端口
服务器ip ouou.com
服务器ip default.ouou.com
服务器ip blog.ouou.com
服务器ip white.ouou.com
Nginx配置文件
首先看下Nginx的配置文件(使用lnmp快速搭建nginx环境,与正常安装不会有太大差异,在此场景不受影响)
打开文件:
vim /usr/local/nginx/conf/nginx.conf
查看Server部分,简化后:
server {listen 80 default_server reuseport;server_name _;index index.html index.htm index.php;root /home/wwwroot/default;....
}
Nginx默认监听80端口,根目录 /home/wwwroot/default,当我们访问ouou.com时,会访问服务器中/home/wwwroot/default目录下的index文件。
添加Server
在nginx.conf文件下添加Server
server {listen 8001;server_name _;root /home/wwwroot/blog;}server {listen 8002;server_name _;root /home/wwwroot/white;}
保存文件,重启Nginx
nginx -s reload
首先测试是否能通过端口访问到项目,目录/home/wwwroot/blog、/home/wwwroot/white中需要有index.html文件,通过浏览器访问http://ouou.com:8001,http://ouou.com:8002,如果能够访问到对应目录下的index文件,表示成功。
经过这一步骤,实现Nginx监听不同端口,路由到不同的项目。接下来要做的事情是,判断请求的域名,根据域名转发到不同端口。
路由转发
在**/usr/local/nginx/conf/vhost**下创建3个文件
default.ouou.com.conf
server {listen 80; # 监听 80 端口autoindex on;server_name default.ouou.com; # 判断域名access_log /usr/local/nginx/logs/access.log combined;index index.html index.htm index.jsp index.php;if ( $query_string ~* ".*[\;'\<\>].*" ){return 404;}location / {proxy_pass http://127.0.0.1:80; # 反向代理到 80 端口add_header Access-Control-Allow-Origin *;}
}
blog.ouou.com.conf
server {listen 80; # 监听 80 端口autoindex on;server_name blog.ouou.com; # 判断域名access_log /usr/local/nginx/logs/access.log combined;index index.html index.htm index.jsp index.php;if ( $query_string ~* ".*[\;'\<\>].*" ){return 404;}location / {proxy_pass http://127.0.0.1:8001; # 反向代理到 8001 端口add_header Access-Control-Allow-Origin *;}
}
white.ouou.com.conf文件
server {listen 80; # 监听 80 端口autoindex on;server_name white.ouou.com; # 判断域名access_log /usr/local/nginx/logs/access.log combined;index index.html index.htm index.jsp index.php;if ( $query_string ~* ".*[\;'\<\>].*" ){return 404;}location / {proxy_pass http://127.0.0.1:8002; # 反向代理到 8002 端口add_header Access-Control-Allow-Origin *;}
}
再次重启Nginx。
每段大概的意思是通过监听80端口,因为每个域名一开始都是进入到80端口,判断域名内容,然后代理到对应的地方,反向代理地址不局限于同一个服务器。
再次使用二级域名访问即可。
如果想看真实例子,欢迎阅读:Nginx反向代理部署多个项目
Nginx 根据不同域名做路由转发相关推荐
- iptables做路由转发服务器经典案例
需求描述: 当前有一台服务器B IP假设为10.10.10.10 此台服务器有smtp.pop服务,用户可以正常使用 当前为了区别个性服务,需要部分用户从服务器A(192.168.100.100)去使 ...
- 搭建nginx反向代理用做内网域名转发
搭建nginx反向代理用做内网域名转发 一.安装nginx $ sudo yum install nginx 二.修改配置文件 1 先备份配置文件 $ sudo cp /etc/nginx/nginx ...
- nginx同IP、同端口、不同域名时的转发
在使用nginx时对于upstream的server的测试中发现,nginx默认对其使用的是基于IP的转发,这就意味着对于同IP.同端口.不同域名时无法进行转发. 在官方WIKI:http://wik ...
- 用Nginx做端口转发(反向代理)
用Nginx做端口转发(反向代理) 将域名转发到本地端口 将域名转发到另一个域名 本地一个端口转发到另一个端口或另一个域名 加 / 与不加 / 有时我们会使用一些java或node应用,但又不想让他们 ...
- nginx实现路由转发
nginx实现路由转发 一.nginx是什么?有什么用? 二.安装nginx 三.启动关闭nginx 四.配置nginx 谢谢阅读,拜拜! 一.nginx是什么?有什么用? 有这么一个场景:java后 ...
- 内网中设备通过一台主机做端口转发联通外网( TPLink路由映射,端口转发,windows自带端口转发netsh interface portproxy)
文章目录 背景描述 需求 方案 配置有限网卡和路由器 在windows上做端口转发 背景描述 一台可以联通外网的路由器(tplink) 一台有无线网卡的计算机 n台内网设备 需求 需要让所有的设备都可 ...
- Nginx 实现按域名分类转发
通过nginx配置不同的域名来实现转发到不同的tomcat book.felix.com -> 127.0.0.1:8001 movie.felix.com -> 127.0.0.1:80 ...
- SpringCloud--GateWay搭建及路由转发规则介绍
一. Spring Cloud Gateway Spring Cloud GateWay 是 Spring Cloud 的⼀个全新项⽬,⽬标是取代 Netflix Zuul,它基于 Spring5.0+ ...
- Knative 实战:如何在 Knative 中配置自定义域名及路由规则
作者 | 元毅 阿里云智能事业群高级开发工程师 当前 Knative 中默认支持是基于域名的转发,可以通过域名模板配置后缀,但目前对于用户来说并不能指定全域名设置.另外一个问题就是基于 Path 和 ...
最新文章
- element的滚动去掉横向_textarea去掉滚动条 textarea横向或纵向滚动条的去掉方法
- 盘点大厂的那些开源项目 - 华为
- linux ntfs 速度慢,将U盘磁盘格式改成NTFS解决u盘复制速度慢问题
- 整理下STL algorithms(3)
- 圣诞节海报设计需要的手写字体素材
- 《Android 开发入门》我为什么要在Android找工作越来越难的时候开始学习它
- Mac 本地搭建服务器实现itms-services方式安装ipa(自制证书)
- web安全day5:DNS部署与安全
- python服务器搭建nginx_从0开始在腾讯云服务器上搭建python3+flask+uwsgi+nginx服务器...
- 2022新和平精英画质助手iApp源码+附成品/可用的
- 怎么学计算机制作ppt,电脑ppt怎么做
- oracle短表和长表的区别,人口普查长表哪些人填和短表有什么区别
- Python词云图的几种制作方法
- 云空间插虾米html音乐,总结一下可以上传MP3并外链的空间
- 来一起学怎么攻击服务器吧!!!
- 前端加速必备之BootCDN
- OpenGauss线程管理-系统日志线程-syslogger
- JZOJ1321 灯
- 富文本生成pdf-java
- export和import
热门文章
- 细说Cocos2d-JS——从项目构造说起
- 笔试常见的智力题 附答案
- 使用Git clone失败 : ‘git clone xxx‘ 一直卡在Cloning in xxx
- 写程序学ML:K近邻(KNN)算法原理及实现(二)
- 人间不正经生活语录(二)
- 细节炸裂,字节官网首发Leetcode刷题手册被泄露,Github一天登顶
- Fastjson反序列化漏洞详解
- Android手势GestureDetector分析(一)——应用
- 图像分类:来自Kaggle中13个项目的Tips和Tricks
- SeqDynamics: Visual Analytics for Evaluating Online Problem-solving Dynamics