宜立方商城第三天 3.Nginx

2023-10-12 14:09:50 浏览数 (2)

图片服务器

传统方式:

将图片上传到Tomcat某个文件夹下 然后下载时从文件夹下下载。

图片太多时 再放Tomcat下边就不合适了

解决方案:

搭建一个图片服务器,专门保存图片。可以使用分布式文件系统FastDFS

Nginx

Dns服务器:把域名解析为ip地址。保存的就是域名和ip的映射关系。

一个域名对应一个ip地址,一个ip地址可以被多个域名绑定。

本地测试可以修改hosts文件。

修改window的hosts文件:(C:WindowsSystem32driversetc)

可以配置域名和ip的映射关系,如果hosts文件中配置了域名和ip的对应关系,不需要走dns服务器。

一.Nginx

Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。

应用场景

1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

2.1. 通过端口区分不同虚拟机

修改Nginx的配置文件:

代码语言:javascript复制
  #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配置:

代码语言:javascript复制
  #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的高可用,需要实现备份机。

0 人点赞