Nginx


1、Nginx

由于商场项目会有大量的图片,传统的方式是将图片放在一个空间,然后将图片路径保存在数据库。这样会导致图片显示反应过慢。由于图片是一种静态资源,可以放在FastDFS图片服务器中。当发送对不同对图片的请求时,可以通过访问ngnix,然后ngnix在取调用FastDFs的图片路径,这样实现快速响应。

2、什么是nginx

nginx是一款高性能的http服务器/反向代理服务器及电子邮件(IMAP/PO3)代理服务器。且对cpu、内存等资源消耗低、运行稳定。其默认的访问端口是80端口。

3、应用场景

1、http服务器。做网页静态服务器。

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

3、反向代理,负载均衡。当网站访问量达到一定程度后,单台服务器不能满足需求。此时需要不熟多台服务器集群加上nginx做为反向代理,实现对于服务器负载的适当的分担。

4、反向代理

 正向代理:客户机发送http请求到指定服务代理服务器,然后代理服务器在外部网路取收索外部那台服务器能够提供服务(外部服务器没有代理服务器的地址)。

 

 

 

 反向代理:

当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。但代理服务其并没有任何反向的意味。下图为反向的思路图解:

 

 

 

5、反向代理的配置(就在一台服务器访问多个网站)

 

1、通过端口区分不同的虚拟机

 

/usr/local/nginx/conf/nginx.conf

 

#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;

        }

    }

 

 

2、通过域名区分虚拟主机

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

本地测试可以修改hosts文件,修改hosts文件中配置了域名和ip的对应关系可以可以实现

192.168.25.148 www.taobao.com

192.168.25.148 www.baidu.com

 

 

/usr/local/nginx/conf/nginx.conf

#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  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.taobao.com 和www.baidu.com  访问到外服务器ip为192.168.25.148

 

6、反向代理的实现及负载均衡

第一步:安装两个tomcat,分别运行在8080、8081和8082端口。

第二步:启动两个tomcat。

第三步:反向代理服务器的配置

upstream tomcat1 {

server 192.168.25.148:8080;

    }

    server {

        listen       80;

        server_name  www.sina.com.cn;

 

        #charset koi8-r;

 

        #access_log  logs/host.access.log  main;

 

        location / {

            proxy_pass   http://tomcat1;

            index  index.html index.htm;

        }

    }

    upstream tomcat2 {

server 192.168.25.148:8081;

/*此处不配置,这是一个tomcat访问一次,weight的设置根据服务器情况的不同进行设置**/

server 192.168.25.148:8082 weight=2;

    }

    server {

        listen       80;

        server_name  www.sohu.com;

 

        #charset koi8-r;

 

        #access_log  logs/host.access.log  main;

 

        location / {

            proxy_pass   http://tomcat2;

            index  index.html index.htm;

        }

    }

 

7、nginx的高可用

nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重。为了屏蔽负载均衡服务器的宕机,需要建立一个备份机

 

7.1keepalived+nginx实现主备

    keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。

     Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

<<nginx.rar>>

学习包


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值