写之前,先讲需求,讲一下这个能帮我们做什么,我有没有必要看。我发现有很多文章,都是调情都还没开始,裤子脱了就开始啪啪啪,啪完了才知道,我去,我要的不是这个。
我们买了一个服务器,买了一个域名。然后我要让这个域名访问这个服务器,我怎么访问。
我输入 www.yourHost.com 这样访问吗?这样访问的是你那台机器的80端口,你说那还不简单,那我访问的时候 直接输入 www.yourHost.com:8080 这样不就行了吗。yes,是可以,但你不觉得很挫吗。给别人链接还带着端口号
那我把应用服务器的8080改成80总行了吧。嗯,可以,但你如果你机器上有2个tomcat,你也有2个域名,但你只有一个主机,那怎么办,都80端口?那不得端口冲突啊
这种需求很常见,我和朋友一起买了个云服务器,总不能他用了80,我就没得用了啊。所以这里就是我们今天要讲的nginx的域名转发功能
谈不上什么教程,老掉牙的技术了,只是自己对Nginx一直都没有研究过,这里记录一下,以后有问题方便查阅,如果还能帮到大家一点什么,那就更好了
四不讲
1.nginx安装不讲
2.一台机器上运行多个tomcat不讲
3.hosts原理不讲
4.我不会的不讲
进入正题
tips:nginx有windows版,如果大家是在windows上看到的这篇博文,可以直接去官网下载nginx的windows,并不是说没linux环境就没法玩了
大家安装好nginx之后,进入如下目录:nginx/conf,找到nginx.conf文件。
在http那个大括号下面有几个server,新增一个server,就可以达到我们本次要诉说的重点
废话不多说,我们上代码。我们在http那个大括号里面,加入2个server
下面解释一下一些参数的含义
nginx默认的端口号是80,这个一般都不会改。
现在我们监听80端口,发现如果有主机名叫“www.cug8080.com”的请求过来,我们就把这个请求转到 location里面的proxy_pass 里去,也就是这里面写的 http://localhost:8080
下面也是一个道理,同样还是监听80端口,收到请求主机名为“www.cug8081.com”的请求过来时,把请求转给http://localhost:8081
PS.记得绑hosts 不然网络肯定不知道这个域名是要访问到哪台IP的机器上去。
127.0.0.1 www.cug8080.com
127.0.0.1 www.cug8081.com
nginx配置不是写了那个域名了吗?拜托,那个是你127.0.0.1这个IP的主机已经收到请求,解析到这个请求所要请求的主机名叫www.cug8080.com而已呐
# cug server 8080
server {
listen 80;
server_name www.cug8080.com;
location / {
proxy_pass http://localhost:8080;
}
}
# cug server 8081
server {
listen 80;
server_name www.cug8081.com;
location / {
proxy_pass http://localhost:8081;
}
}
撸完收工,over!