下来看一下我们的需求,我这里有三个网站项目工程需要部署(依次对应着三个域名),提供一台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;

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怎么高效的在一台服务器部署多个站点的详细内容,更多请关注主机测评网其它相关文章!
本文来源:国外服务器--Nginx怎么高效的在一台服务器部署多个站点(nginx配置多台服务器)
本文地址:https://www.idcbaba.com/guowai/2833.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。



