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

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

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


目录

    • Nginx✧虚拟主机&资源静态化
      • 一、负载策略的几种配置(常用命令)
        • 1、轮询模式(默认)
        • 2、权重模式
        • 3、最少连接数
        • 4、IpHash
        • 5、常用命令
      • 二、资源静态化
        • 1、配置Nginx服务器
        • 2、配置Tomcat服务器
        • 3、测试
      • 三、虚拟主机
        • 1、修改windons的hosts文件
        • 2、修改Nginx配置文件
        • 3、 基于端口
      • 四、 Session一致性
        • 1、安装并启动
        • 2、修改tomcat


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

四种负载均衡均衡配置直接再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下管理,大的文件直接通过图床管理,准备两张图片测试。

Nginx✧虚拟主机&资源静态化_第1张图片


1、配置Nginx服务器

准备静态资源

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

修改配置config

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

2、配置Tomcat服务器

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


三台一起操作更方便

Nginx✧虚拟主机&资源静态化_第2张图片


修改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、测试

Nginx✧虚拟主机&资源静态化_第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 来存储

Nginx✧虚拟主机&资源静态化_第4张图片

Nginx✧虚拟主机&资源静态化_第5张图片


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" />
#重启服务器即可实现

完工~~


Nginx✧虚拟主机&资源静态化_第6张图片


你可能感兴趣的:(Java+大数据之旅,Linux,nginx,负载均衡,linux,虚拟主机)