Nginx初级

代理

概述

代理:计算机中的一种概念,一般指代码设计方式(如:AOP动态代理)或物理层访问方式(如:代理服务器)。

代理服务器:

  • 概述(代理服务器,Proxy Server)是一种重要的服务器安全功能,它的工作主要在开放系统互联(OSI)模型的会话层,从而起到防火墙的作用。代理服务器大多被用来连接国际互联网和局域网。
  • 目的:
    • 隐藏访问者的身份,伪装请求
    • 访问不能够访问的地址或服务器

正向代理与反向代理的区别

正向代理

同学A向同学B借钱,由于两天前同学A向同学B借的橡皮没还,导致同学B不想借给同学A钱,于是同学A找到同学C,让同学C以C自己的名义帮忙向同学B借钱,同学C面子很大,成功的在同学B手中借到了钱,然后就交给了同学A,但是同学B则以为是同学C借的钱,不知道最后钱给了同学A。

这个案例中,同学C就是一个代理,同学A使用一个代理达成了自己的目的,而且同学A指定了被借钱的对象,知道代理方找的对象是同学B,这个过程就是正向代理。

image-20210323151517057

反向代理

同学A拿着刚借到的200块钱开始做起了水产生意,从哈尔滨进海鲜往大连卖,两天的时间就赔光了,同学A觉得自己这次的失败是因为启动资金不充足,决定向银行申请贷款20万。于是同学A向银行申请了贷款,没过几日,同学A就收到了银行的20万元,当时他还纳闷儿,银行的钱是从哪来的?

这个案例中,银行就是一个代理,同学A只是向银行提出了自己的需求,银行则把钱借给了同学A,至于银行的钱哪来的,同学A不知道,只有银行知道,这个过程就是反向代理。

image-20210323154134179

反向代理服务器

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

image-20210323155935268

负载均衡

概述

在企业级项目中,可能会遇到高并发的情况,如果一台服务器应对不过来高并发的请求,就可以将一个项目部署到多台服务器上,把请求分发到多台服务器中进行处理,实现集群部署。

如果采用集群部署,首先面临的就是如何将请求分发到集群的各个服务器上,还要保证请求不能集中的分发到一台服务器上,要平均的或按照每台服务器能够处理的压力大小来合理分配,解决这个问题的方式就是负载均衡。

负载均衡服务器

使用负载均衡服务器即可解决上面的问题,一般的负载均衡服务器都可以进行策略配置,按照既定的策略进行请求分发。

image-20210323175822111

Nginx服务器

概述

Nginx是一款轻量级的负载均衡/反向代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。

安装

  • 在Nginx官网下载最新版Nginx安装包:http://nginx.org

  • 将下载的安装包传输到服务器中,并解压

  • 由于Nginx需要C环境进行编译,所以在安装Nginx之前,需要先安装配置C编译环境

    yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
    
  • 进入到nginx解压之后的文件夹中,执行编译命令

    ./configure
    
  • 编译成功以后,将编译后的结果安装到服务器中

    make && make install
    
  • 安装完毕后,Nginx服务默认会安装到/usr/local/nginx文件下

配置

Nginx运行需要进行文件配置,编辑conf/nginx.conf文件

标准Nginx配置文件:

# 使用哪个对象去访问  注释掉了以后就是使用用户 一般就是root
user root;
worker_processes  8;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

·#工作时候 一个核心允许链接最大的连接数 自己可以调 例如 两个就是2048
events {
    worker_connections  1024;
}


http {
    client_max_body_size 100m;
    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;
    
    # 负载均衡配置
    upstream web-server{
    #配置多台服务器
        server   localhost:8080;
        server   localhost:8081;
    }
    

    server {
    	#启动时候监听的端口  监听哪个就是端口  端口可以有多个 要想再监听 就再加一个
        listen       80;
        # 监听的地址  对于服务器 针对于前方
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        
        #反向代理配置
        #拦截一个地址 从'/'开始
        location / {
        #把项目打包成一个压缩包  放在root文件夹下 然后解压 然后在下面两处配置
        #root静态文件夹
            root   /etc/nginx/html/web-client;
            #静态地址
            index  index.html;
            #启动nginx
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        
        # 反向代理配置 
        #^~ 通配符  代表所有
        #只要 访问的服务 含有 web-server就反向代理到服务器  这个webserver是自定义的  跟上面的一一样
        #也必须跟前端请求发送的baseAPI一样
        location ^~ /web-server {
            proxy_pass   http://web-server/;
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
            proxy_max_temp_file_size 0;
            proxy_connect_timeout      90;
            proxy_send_timeout         90;
            proxy_read_timeout         900;
            proxy_buffer_size          4k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;
        }
    }
}

使用sbin/nginx -s reload即可重新加载配置文件

启动

  • 启动Nginx

    sbin/nginx
    
  • 关闭Nginx

    sbin/nginx -s stop
    
  • 重新加载Nginx配置文件

    sbin/nginx -s reload
    
  • 20
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值