传统方式:
将图片上传到Tomcat某个文件夹下 然后下载时从文件夹下下载。
图片太多时 再放Tomcat下边就不合适了
解决方案:
搭建一个图片服务器,专门保存图片。可以使用分布式文件系统FastDFS。
Dns服务器:把域名解析为ip地址。保存的就是域名和ip的映射关系。
一个域名对应一个ip地址,一个ip地址可以被多个域名绑定。
本地测试可以修改hosts文件。
修改window的hosts文件:(C:\Windows\System32\drivers\etc)
可以配置域名和ip的映射关系,如果hosts文件中配置了域名和ip的对应关系,不需要走dns服务器。
一.Nginx
Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。
应用场景:
1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
2.1. 通过端口区分不同虚拟机
修改Nginx的配置文件:
#user
nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type
application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local]
"$request" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log
logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log
logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
}
server {
listen 81;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html-81;
index index.html index.htm;
}
}
}
一个server节点就是一个虚拟主机 root为访问目录 访问 localhost:80 访问的是html目录下的文件 访问 localhost:81 访问的是html-81目录下的文件
2.1. 通过域名区分虚拟主机 域名的配置: 192.168.25.148 www.taobao.com 192.168.25.148 www.baidu.com Nginx配置:
#user
nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type
application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local]
"$request" '
# '$status
$body_bytes_sent "$http_referer" '
#
'"$http_user_agent" "$http_x_forwarded_for"';
#access_log
logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log
logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
}
server {
listen 81;
server_name localhost;
#charset koi8-r;
#access_log
logs/host.access.log main;
location / {
root html-81;
index index.html index.htm;
}
}
server {
listen 80;
server_name www.taobao.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html-taobao;
index index.html index.htm;
}
}
server {
listen 80;
server_name www.baidu.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html-baidu;
index index.html index.htm;
}
}
}
访问 www.baidu.com 访问的是html-baidu目录下的文件 访问 www.taobao.com 访问的是html-taobao目录下的文件
/usr/local/nginx/conf/nginx.conf
3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
反向代理:
反向代理服务器决定哪台服务器提供服务。
负载均衡:
如果一个服务由多条服务器提供,需要把负载分配到不同的服务器处理,需要负载均衡。
可以根据服务器的实际情况调整服务器权重。权重越高分配的请求越多,权重越低,请求越少。默认是都是1
高可用:
要实现nginx的高可用,需要实现备份机。