目录
概念
代理
正向代理
反向代理
安装
基本属性
nginx.conf
查询
结构
属性
使用
运行
重启
停止
概念
是一个高性能的HTTP和反向代理web服务器。
代理
正向代理
一个客户端与目标服务器之间的代理服务器。正向代理是代表客户端来进行访问目标服务器,我们要获取到目标服务器的资源,客户端配置代理服务器地址,客户端使用代理服务器地址访问目标地址,可以隐藏客户端的地址。
反向代理
一个客户端与目标服务器之间的代理服务器。反向代理是代表的服务器来接收客户端的访问请求,客户端不知道目标服务器的存在,对客户端来说,目标服务器是无感的,代理服务器就是目标服务器,代理服务器将请求转发给目标服务器获取返回资源后,再将返回的资源返回给客户端,可以隐藏目标服务器的地址。比如nginx服务器就是反向代理。
安装
2.解压到自定义的文件夹下
基本属性
nginx.conf
查询
nginx的主配置文件地址/etc/nginx/nginx.conf,可以使用cat -n nginx.conf来查看配置
结构
main # 全局配置,main模块设置的指令将会影响其他所有设置,通常设置nginx的用户(组)、允许生成的woker_process数目、nginx进程PID存放目录、日志存放路径和类型以及配置文件的引入
|——events # 配置nginx服务器或用户的网络,通常设置包括是否开启对多个work_process下的网络进行序列化、是否允许同时接收多个网络连接、选取哪种事件模型来处理连接请求、每个work_process可以同时支持的最大连接数
|——http # 配置代理、缓存、日志等绝大部分功能及第三方模块配置
|——upstream # 配置后端服务器具体地址,负载均衡配置不可或缺的部分
|——server # 配置虚拟主机相关参数,一个server对与用户来说就是一个虚拟主机,一个http块可以包含多个server块,
|——location # server块可以包含多个location块,用于匹配uri,地址定向、数据缓存和应答控制等功能,还有许多其他第三方模块也在这里配置
属性
# 定义运行nginx的用户与用户组
user www www;
# nginx的进程数,建议设置为等于CPU总核数
worker_processes 8;
# 全局错误日志定义类型[debug|info|notice|error|crit]
error_log /usr/local/nginx/logs/error.log info;
# 进程pid文件
pid /usr/local/nginx/logs/nginx.pid;
events{
# 设置网路连接序列化,防止惊群现象发生,默认为on
accept_mutex on;
# 设置一个进程是否同事接受多个网络连接,默认为off
multi_accpet on;
# 事件驱动模型[select|poll|kqueue|epoll|resig|/dev/poll|eventport]
use epoll;
# 最大连接数,默认为512
worker_connections 1024;
}
# 设定http服务器,利用它的反向代理功能提供负载均衡支持
http
{
# 常用配置
# 文件扩展名与文件类型映射表
include mime.types;
# 设定通过nginx上传文件的大小
client_max_body_size 8m;
# 长连接超时时间,单位是秒
keepalive_timeout 120;
# 默认文件类型
default_type application/octet-stream;
# 默认编码
charset utf-8;
# 负载均衡配置
upstream lyy.api{
# upstream的负载均衡,weight是权重,可以根据机器配置定义权重,weight参数表示权值,权值越高被分配到的记录越大;down表示当前的server暂时不参与负载;max_fails表示允许请求失败的次数默认为1,当超过最大次数时,返回proxy_next_upstream模块定义的错误;fail_timeout表示max_fails次失败后,暂停的时间;backup表示其他所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻
server 192.168.1.10:80 weight=1 backup;
server 192.168.1.11:80 weight=2 down;
server 192.168.1.12:80 weight=3 max_fails=3 fail_timeout=15;
# nginx的upstream目前支持4种方式的分配
# 1、轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除
# 2、weight:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
# 3、ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题
# 4、fair:按后端服务器的相应时间来分配请求,响应时间短的优先分配。
}
# 虚拟主机的配置
server{
# 监听端口
listen 80;
# 域名可以有多个,用空格隔开
server_name www.lyy.com www.lyy.cn;
index index.html index.htm index.php;
root /data/www/lyy;
# 定义本虚拟主机的访问日志
access_log /usr/local/nginx/logs/host.access.log main;
access_log /usr/local/nginx/logs/host.access.404.log log404;
# 对"/api"启用反向代理
location /api {
# 所有请求了ip:port/api/**的接口都会转发到lyy.api负载配置去
proxy_pass lyy.api;
# 或者直接配置地址
# proxy_pass http:127.0.0.1:11001;
# 允许客户端请求的最大单文件字节数
client_max_body_size 10m;
# 后端服务器连接的超时时间
proxy_connect_timeout 90;
# 后端服务器数据回传超时时间
proxy_send_timeout 90;
# 连接成功后,后端服务器响应超时时间
proxy_read_timeout 90;
}
}
}
使用
运行
在nginx目录下打开cmd,然后执行启动命令,双击nginx.exe后,在修改配置后,再重启、关闭nginx都不生效,只有在任务管理器中进行关闭所有nginx进程。
start nginx
重启
修改nginx.conf的配置后,重启nginx
nginx.exe -s reload
修改端口为8002,然后运行重启命令
停止
nginx -s stop