Nginx✧虚拟主机&资源静态化

🍄Nginx✧虚拟主机&资源静态化

此篇主要是资源静态化和虚拟主机的配置使用,最好先看一下基础篇(文尾有壁纸~)



一、🍓负载策略的几种配置(常用命令)

四种负载均衡均衡配置直接再conf/nginx.conf文件内进行修改添加即可

1、轮询模式(默认)
upstream bdp {
      server 192.168.168.101:8080;
      server 192.168.168.102:8080;
      server 192.168.168.103:8080;
    }
2、权重模式
upstream bdpweight {
      server 192.168.168.101:8080 weight=4;
      server 192.168.168.103:8080 weight=1;
      server 192.168.168.102:8080 weight=1;
    }
3、最少连接数
upstream bdpleast {
      least_conn;
      server 192.168.168.101:8080;
      server 192.168.168.103:8080;
      server 192.168.168.102:8080;
    }

4、IpHash
upstream bdphash {
      ip_hash;
      server 192.168.168.101:8080;
      server 192.168.168.103:8080;
      server 192.168.168.102:8080;
    }


5、常用命令
关闭nginx服务
kill `cat /usr/local/nginx/logs/nginx.pid`
nginx -s reload :修改配置后重新加载生效
nginx -s reopen :重新打开日志文件
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确
关闭nginx:
nginx -s stop :快速停止nginx
quit :完整有序的停止nginx
其他的停止nginx 方式:
ps -ef | grep nginx
kill -QUIT 主进程号 :从容停止Nginx
kill -TERM 主进程号 :快速停止Nginx
pkill -9 nginx :强制停止Nginx
启动nginx:
nginx -c /path/to/nginx.conf
平滑重启nginx:
kill -HUP 主进程号

二、🍓资源静态化

提前准备四台虚拟机,basenode,node1,node2,node3,basenode作为nginx代理服务器,node1~3作为三台tomcat服务器,将静态文件小的直接由nginx下管理,大的文件直接通过图床管理,准备两张图片测试。

在这里插入图片描述


1、配置Nginx服务器

准备静态资源

#再nginx目录html下创建static文件夹
mkdir static
#将小资源图片上传statci内
rz

修改配置config

#再server中添加内容:
server {
       location ^~ /static/ {
           root html;
       }
   	}

2、配置Tomcat服务器

图床,直接使用线上的一个图床https://imgurl.org/

在这里插入图片描述


三台一起操作更方便

在这里插入图片描述


修改apache-tomcat-8080/webapps/ROOT/index.js文件

<body>
        <h1>welcome to 斗鱼直播</h1>
        <h2>Server:<%=request.getLocalAddr() %></h2>
        <h2>Port:<%=request.getLocalPort() %></h2>
        <h2>Client:<%=request.getRemoteAddr() %></h2>
        <!--图床生成的图片链接--/>
        <img src = 'https://s3.bmp.ovh/imgs/2021/10/0935f78b61223238.jpg' />
        <!--nginx的static图片链接--/>
        <img width="200px" src="/static/test4.jpg" />
    </body>


3、测试

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


三、🍓虚拟主机

虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成多台“虚拟”的主
机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Intemet服务器功
能(WWW、FTP、Email等),同一台主机上的虚拟主机之间是完全独立的。从网站访问者来看,
每一台虚拟主机和一台独立的主机完全一样。
-分类
–1、基于域名的虚拟主机,通过域名来区分虚拟主机
–2、基于端口的虚拟主机,通过端口来区分虚拟主机
(这里对node1~3上的tomcat服务器进行复制,每个node上有两台,具体复制tomcat再基础篇有教程


1、修改windons的hosts文件

修改Window的 C:\Windows\System32\drivers\etc\hosts 文件

//添加内容
192.168.168.100 www.fxhh.com
192.168.168.100 www.miaosha.com

2、修改Nginx配置文件
	upstream miaosha {
      server 192.168.168.101:8080;
      server 192.168.168.102:8080;
      server 192.168.168.103:8080;
    }

   upstream fxhh {
      server 192.168.168.101:18080;
      server 192.168.168.102:18080;
      server 192.168.168.103:18080;
    }

    server {
        listen 80;
        server_name www.miaosha.com;
        location / {
                proxy_pass http://miaosha;
        }
    }
    server {
        listen 80;
        server_name www.fxhh.com;
        location / {
                proxy_pass http://fxhh;
        }
    }

重启nginx和tomcat进行测试

在这里插入图片描述
在这里插入图片描述

通过配置域名+nginx反向代理,直接实现基于域名的虚拟主机


3、 基于端口

修改Window的 C:\Windows\System32\drivers\etchosts 文件

192.168.168.100 www.bdp.com

修改Nginx配置文件

http {
 upstream port12345 {
	server 192.168.168.101:8080;
	server 192.168.168.102:8080;
	server 192.168.168.103:8080;
 }
 upstream port54321 {
	server 192.168.168.101:18080;
	server 192.168.168.102:18080;
	server 192.168.168.103:18080;
 }
 server {
	listen 12345;
	server_name www.bdp.com;
	location / {
	proxy_pass http://port12345;
	}
 }
 server {
	listen 54321;
	server_name www.bdp.com;
	location / {
	proxy_pass http://port54321;
	}
 }
}

基于端口虚拟主机修改以上内容即可实现,一个监听端口一个监听域名


四、🍓 Session一致性

首先我们要明白session的跟踪机制,session存放cookie中,具体原理如下图。故此我们使用一个独立的存储器来存放session,内存数据库 memcached 来存储

在这里插入图片描述

在这里插入图片描述


1、安装并启动
#内存数据库
#安装数据库
yum install memcached -y
#开启数据库服务
systemctl status memcached
systemctl start memcached
systemctl enable memcached
#查看配置
vim /etc/sysconfig/memcached
2、修改tomcat
#拷贝jar包到当前服务器lib目录下
#要注意memcached的版本
#如果一个机器有多个tomcat都需要session一致配置
tomcat/conf/server.xml
#相同项目如果想共享session,需要把jvmRoute命名一致
#如果你只有一个tomcat,忽略此步骤
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm18080">
</Engine>
#配置 tomcat/conf/context.xml
<Manager
className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.88.100:11211"
sticky="true"
lockingMode="auto"
sessionBackupAsync="false"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
sessionBackupTimeout="1000"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoT
ranscoderFactory" />
#重启服务器即可实现

完工~~


在这里插入图片描述


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每日小新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值