随着服务器性能的提升和业务的需求,一台服务器上往往会同时有多个服务,这些服务都希望监听80端口,比如有vue.msg.com和react.msg.com。这时候我们可以使用nginx的代理转发功能帮我们实现共用80端口的需求。
首先我们先在两个空闲的端口上分别部署项目(非80,假设是8080和8081), nginx.conf 配置如下:
上面就是常规的配置,紧接着如果已经做好域名解析,希望vue.msg.com打开vue项目,react.msg.com打开react项目。我们需要再做两个代理,如下:
nginx如果检测到vue.msg.com的请求,将原样转发请求到本机的8080端口,如果检测到的是react.msg.com请求,也会将请求转发到8081端口。
这样nginx对外就有四个服务,我们只需要公布80端口的就可以了,这样就实现了多个服务共用80端口。
Nginx多文件配置二级子域名(推荐)
首先,在自己的域名控制台中添加解析,这里以添加blog前缀为例
我用的是万网,在 解析设置 中 添加解析
主机记录 :你想要的二级域名
记录值 :你的IP地址
保存后,我们就完成了第一步把子域名解析到我们的服务器上。
第二步:添加配置文件
进入nginx的 /conf 配置文件夹中,编辑 nginx.conf 文件
[root@iZ2844brz0xZ~]# cd /usr/local/nginx/conf/[root@iZ2844brz0xZ~]# vim nginx.conf
在 http 模块中添加如下语句
include/usr/local/nginx/conf/sites-enabled/*.conf
告诉这个配置文件要去包含 /sites-enabled 目录下的所有以 .conf 结尾的配置文件。:wq 保存。
此时,我们新建一个 /sites-enabled 文件夹,并在其中添加 blog.***.com.conf 文件
[root@iZ2844brz0xZconf]# mkdir sites-enabled[root@iZ2844brz0xZsites-enabled]# vim blog.***.com.conf
在文件中添加
server {listen80#监听端口server_name blog.***.com#绑定域名root /usr/local/nginx/html/blog/#网站根目录,建议使用绝对路径indexindex.phpindex.htmlindex.htm#默认文件#添加对php的解析location ~ \.php$ { fastcgi_pass127.0.0.1:9000 fastcgi_indexindex.php fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name include /usr/local/nginx/conf/fastcgi_params }#添加错误页面,利于搜索引擎收录以及良好的用户体验error_page404/404.html location /404.html { root /usr/local/nginx/html/ } error_page500502503504/50x.html location =/50x.html {
root /usr/local/nginx/html/ }}
内容可自行添加
Nginx单文件配置二级子域名
在 nginx.conf 文件的 server 模块中添加以下语句
if($host~* (\b(?!www\b)\w+)\.\w+\.\w+ ) { set$subdomain/$1}location / { root html$subdomainindexindex.htmlindex.phpindex.htmindex}
即可解析到对应文件夹
最后,重启nginx即可
[root@iZ2844brz0xZsites-enabled]# /usr/local/nginx/sbin/nginx -s reload
来自:https://blog.csdn.net/LBinin/article/details/70188752
问题描述:根目录www下有两个项目文件test1,test2.
|-www
|-----test1
|-----test2
如果没有域名,开发时只能通过www/test1和www/test2来访问两个项目,很不方便,而且会出现很多问题.
现在想要给他们配置两个域名,达到浏览器输入域名直接访问的效果:
|-www
|-----test1 www.test1.com
|-----test2 www.test2.com
实现原理:
假设我们要访问百度,在浏览器输入域名 www.baidu.com ,
浏览器在解析域名前,会先查询本机的hosts文件(存放的是域名和IP的对应关系),查找是否有 www.baidu.com 的IP地址,
如果能找到记录,则直接使用这个IP.
如果找不到记录,就去请求DNS服务器,把域名解析成百度的IP地址,再去请求数据.
那么可以修改这个hosts文件,让域名 www.testX.com 指向我们本机.
操作步骤:
1.找到windows下的hosts文件,(win10系统,C:\Windows\System32\drivers\etc)
,用记事本打开,在最后加上两行
保存,退出.(可能遇到无法保存的问题,去百度下)
此时,在浏览器输入 www.test1.com 或者 www.test2.com 就能访问到我们本机的服务器了.
但是,服务器只是接收到了请求,还不知道如何处理,接下来的要做的是,告诉Nginx服务器,
请求URL为 www.test1.com 时进入www/test1 项目.
请求URL为 www.test2.com 时进入www/test2 项目.
2.配置服务器上的vhosts.conf文件
依次点击:其他选项菜单 >打开配置文件 >vhosts-ini
在vhosts.conf文件写入以下内容
复制一份,把域名改成 www.test2.com ,路径配置为test2项目的路径.
到此vhosts.conf文件就配置好了.
那么如何让这个vhosts文件生效呢?
只要在Nginx主配置文件引入它就行了.
(注意:要写在原有的大括号里边)
保存,退出.这样就OK了.
4.重启服务器.测试一下.
在test1目录下新建index.php文件,写入
在test2目录下新建index.php文件,写入
结果:
这样我们就能通过两个域名,分别访问这两个不同的项目了.如果有更多的项目,只要复制vhosts.conf里的配置就行了.
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)