Nginx 简单记录

Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。官方测试可以支持5W并发链接,资源消耗低且稳定

 

 正向代理

客户端和目标服务二者之间经过代理间接链接。客户端只需向代理服务器发起请求,并指定本身的目标服务(进行一些设置),由代理转交给指定的目标服务,
同时目标服务器返回的内容转接给代理,由代理返回给客户端,此时目标服务不知道请求的客户端是谁。

 反向代理

和正向代理相反,客户端并不能知道反向代理的存在,本身请求的代理服务器对于客户端来讲就是本身的目标服务(代理对外表现为目标服务器),客户端不须要进行特别的任何设置就能够反问,由代理决定
向哪台服务器转交请求(转接真实服务器)。html

 总的说:nginx

一个是代理客户端,为客户端收发请求,使真实客户端对服务器不可见。
一个是代理服务器,为服务器收发请求,使真实服务器对客户端不可见。

 负载均衡

Nginx的应用就是实现负载均衡,nginx扮演了反向代理服务器的角色, 将请求数量按照必定的规则进行分发到不一样的服务器处理的规则,就是一种均衡规则服务器

 下载安装

官网:https://nginx.org/en/download.html, 下载window版本网络

 启动nginx:并发

1) 直接双击该目录下的nginx.exe,便可启动nginx服务器app

2) 命令行进入该文件夹,执行nginx命令,也会直接启动nginx服务器负载均衡

如:性能

D:/resp_applicationinx-1.13.5> nginx 

关闭nginx:测试

1) 强制中止nginx服务器,若是有未处理的数据,丢弃
D:/resp_applicationinx-1.13.5> nginx -s stop
2) 优雅的中止nginx服务器,若是有未处理的数据,等待处理完成以后中止
D:/resp_applicationinx-1.13.5> nginx -s quit 

 常见配置

配置文件目录:conf/nginx.confui

配置说明:

......                              # 用于进行nginx全局信息的配置

events {                            # nginx工做模式配置

}

http {                              # http设置
    ....

    server {                        # 服务器主机配置
        ....
        location {                  # 路由配置
            ....
        }

        location path {
            ....
        }

        location otherpath {
            ....
        }
    }

    server {
        ....

        location {
            ....
        }
    }

    upstream name {                    # 负载均衡配置
        ....
    }
}

配置实例:

########### 每一个指令必须有分号结束。#################
#worker_processes 2;            #容许生成的进程数,默认为1能够等于CPU核心数
#pid /nginx/pid/nginx.pid;      #指定nginx进程运行文件存放地址
error_log log/error.log debug;  #制定日志路径,级别。这个设置能够放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg
events {
    accept_mutex on;            #设置网路链接序列化,防止惊群现象发生,默认为on  multi_accept on; #设置一个进程是否同时接受多个网络链接,默认为off
    #use epoll;                 #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
    worker_connections  1024;   #最大链接数,默认为512
}
http {
    include       mime.types;                 #文件扩展名与文件类型映射表
    default_type  application/octet-stream;        #默认文件类型,默认为text/plain
    #access_log off;                       #取消服务日志    
    log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定义格式
    access_log log/access.log myFormat;            #combined为日志格式的默认值
    sendfile on;                                        #容许sendfile方式传输文件,默认为off,能够在http块,server块,location块。
    sendfile_max_chunk 100k;                            #每一个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
    keepalive_timeout 65;                               #链接超时时间,默认为75s,能够在http,server,location块。 
    upstream mysvr {   
      server 127.0.0.1:7878 weight=1;
      server 127.0.0.2:7878 weight=2;     #weight表示权值,越高分配的几率越大
server 127.0.0.3.7878 down; #down 表示主机暂停服务 } error_page
404 https://www.baidu.com; #错误页 server { keepalive_requests 120; #单链接请求上限次数。 listen 4545; #监听端口 server_name 127.0.0.1; #监听地址 location ~*^.+$ { #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。 #root path; #根目录 #index vv.txt; #设置默认页 proxy_pass http://mysvr; #请求转向mysvr 定义的服务器列表 必须和upstream 后面的名字同样 deny 127.0.0.1; #拒绝的ip allow 172.18.5.54; #容许的ip } } }

 简单示例

访问127.0.0.1:8001  被转向了预先部署好的2个站点 127.0.0.1:8022  和127.0.0.1:8033

 

相关文章
相关标签/搜索