Nginx 简单记录

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

 正向代理

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

 反向代理

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

 总的说:

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

 负载均衡

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

 下载安装

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

 启动nginx:

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

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.conf

配置说明:

......                              # 用于进行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

原文地址:https://www.cnblogs.com/qiuguochao/p/9846395.html