Nginx配置多个服务共用80端口

Nginx配置多个服务共用80端口,第1张

对于Web而已,80端口和443端口是十分重要的,原则上需要输入 http://domain.com:80 才可以浏览网页的,但由于默认端口是80,所以‘:80’可以忽略。同理对于https的443端口也一样。

随着服务器性能的提升和业务的需求,一台服务器上往往会同时有多个服务,这些服务都希望监听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里的配置就行了.


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/672617.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-27
下一篇2023-07-27

发表评论

登录后才能评论

评论列表(0条)

    保存