Nginx怎么高效的在一台服务器部署多个站点(nginx配置多台服务器)

Nginx怎么高效的在一台服务器部署多个站点(nginx配置多台服务器)

浏览次数:
信息来源: 用户投稿
更新日期: 2025-11-21
文章简介

下来看一下我们的需求,我这里有三个网站项目工程需要部署(依次对应着三个域名),提供一台linux服务器,要实现访问对应的域名跳转到对应的网站。下来我们看一下为了解决这个问题,我所设计的体系架构图

2025阿里云双十一服务器活动

下来看一下我们的需求,我这里有三个网站项目工程需要部署(依次对应着三个域名),提供一台linux服务器,要实现访问对应的域名跳转到对应的网站。

下来我们看一下为了解决这个问题,我所设计的体系架构图:

这里我们假定图中linux服务器公网ip为192.168.2.100,然后假定要在这台服务器搭建这么三个站点:www.nginxtest.net、admin.nginxtest.net、app.nginxtest.net。

好了,下来我们具体配置一下:

1.配置nginx反向代理

我们还是先连接ssh,然后进行下面操作(一般不建议修改默认主配置文件nginx.conf,所以我们新建负载均衡配置文件fxdl.conf,保证服务器安全,如下):

$sshroot@192.168.2.100//ssh连接

#touchfxdl.conf//创建代理配置文件

设置低权限用户,为了安全而设置的

#error_loglogs/error.log;

#error_loglogs/error.lognotice;

#error_loglogs/error.loginfo;

#设置pid存放路径(pid是控制系统中重要文件)

log_formatmain'$remote_addr-$remote_user[$time_local]"$request"'

'$status$body_bytes_sent"$http_referer"'

'"$http_user_agent""$http_x_forwarded_for"';

#用来指定日志文件的存放路径

access_log/data/wwwlogs/access_nginx.logmain;

#长连接超时时间,单位是秒

#散列表的冲突率,默认1024,越大则内存消耗更多,但散列key的冲突率会降低,检索速度就更快

#文件扩展名与文件类型映射表

include/usr/local/nginx/conf/mime.types;

default_typeapplication/octet-stream;

#include/etc/nginx/conf.d/*.conf;

#主要是用于设置一组可以在proxy_pass和fastcgi_pass指令中使用额代理服务器,默认负载均衡方式为轮询

#开启gzip压缩,开启后,访问网页会自动压缩

server_nameapp.nginxtest.net;

proxy_passhttp://tomcat_client;

proxy_set_headerhost$host;

proxy_set_headerx-real-ip$remote_addr;

server_nameadmin.nginxtest.net;

proxy_passhttp://tomcat_client;

Nginx怎么高效的在一台服务器部署多个站点,nginx配置多台服务器

proxy_set_headerx-real-ip$remote_addr;

server_namewww.nginxtest.net;

proxy_passhttp://tomcat_client;

proxy_set_headerhost$host;

proxy_set_headerx-real-ip$remote_addr;

if($http_user_agent~*'(iphone|ipod|ipad|android|windowsphone|mobile|nokia)'){

rewrite.http://www.nginxtest.net/phonebreak;

rewrite.http://www.nginxtest.net/pcbreak;

}

好了就是这么简单,nginx反向代理配置完毕。下来配置tomcat:

2.配置tomcat部署多个站点

$sshroot@192.168.2.100//ssh连接

#cp/usr/local/tomcat/conf/server.xml/usr/local/tomcat/conf/server.xml_bk//备份server.xml原文件

#viserver.xml//用vi编辑器打开文件,然后按键盘的i

我们编辑server.xml,engine节点下添加以下host节点(节点中的域名和站点工程目录需要自定义修改为你们自己的):

<hostname="www.nginxtest.net"unpackwars="true"autodeploy="true"

xmlvalidation="false"xmlnamespaceaware="false">

<contextpath="/"docbase="/data/wwwroot/www.nginxtest.net/webcontent"reloadable="true"/>

<hostname="admin.nginxtest.net"unpackwars="true"autodeploy="true"

xmlvalidation="false"xmlnamespaceaware="false">

<contextpath="/"docbase="/data/wwwroot/admin.nginxtest.net/webcontent"reloadable="true"/>

<hostname="app.nginxtest.net"unpackwars="true"autodeploy="true"

xmlvalidation="false"xmlnamespaceaware="false">

<contextpath="/"docbase="/data/wwwroot/app.nginxtest.net/webcontent"reloadable="true"/>

</host>

注意:如果你想要实现直接访问公网ip无网页效果,删除engine节点下的

<hostname="localhost"..>..</host>

即可。

输入完成后按下esc,然后输入:

:wq!

就可以保存并退出配置文件了。到此,tomcat也配置完毕了。

接下来我们就可以将我们的多个站点工程代码放在/data/wwwroot/下了。然后启动nginx和tomcat。

现在可以试一下,分别访问每个站点的二级域名www.nginxtest.net、admin.nginxtest.net、app.nginxtest.net,我们发现已经可以跳转到对应的站点了(和每个站点分别部署一台服务器,看到的效果是一样的)。

以上就是Nginx怎么高效的在一台服务器部署多个站点的详细内容,更多请关注主机测评网其它相关文章!

标签:
关于SEO托管您需要了解的12件事(seo托管的好处)
« 上一篇
返回列表
下一篇 »

如本文对您有帮助,就请抽根烟吧!