宜立方商城第三天 3.Nginx

Nginx配置与应用
本文介绍了Nginx的基本概念及其在实际场景中的应用,包括作为HTTP服务器、虚拟主机配置方法以及如何进行反向代理与负载均衡。同时,还探讨了图片服务器的搭建方案。

图片服务器

传统方式:
在这里插入图片描述
将图片上传到Tomcat某个文件夹下 然后下载时从文件夹下下载。

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

解决方案:

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

Nginx

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的高可用,需要实现备份机。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值