一、概念
代理
1.正向代理:代理配置在客户端就是正向代理,vpn
2.反向代理:代理配置在服务端就是反向代理, nginx
负载均衡
- 轮循
- 加权轮循
- iphash
动静分离
- 动态资源
- 静态资源
二、安装
win10下载,解压 直接打开
三、常用命令
``
nginx -v 查看版本
start nginx 启用
nginx -s stop 关闭
nginx -s quit 退出
nginx -s reload 重新加载
ps aux|grep nginx 查看进程(linux)
tasklist /fi “imagename eq nginx.exe”(win10)
taskkill /f /pid xxx /pid xxx(win10)
``
四、配置文件
1、配置的文件的位置 (nginx->conf)
2、具体模块
- 全局配置
- events配置 服务器与用户网络连接
- http配置(http,server,location, upstream)
五、实例配置
# <!-- 操作人是谁(nobody||root),操作worker_processes(打工仔),worker_processes默认是由msater(老板)控制的-->
#user nobody;
# <!-- worker_processes 工作进程可以设置多个,越多承受并发量越高,但是要根据服务器配置设置,以防服务器爆炸(开玩笑)!通常设置成和cpu的数量相等 -->
# <!-- 抢占机制 -->
worker_processes 1;
# <!-- 错误日志 级别从低到高 debug info notice warn error crit -->
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
# <!-- 进程id -->
#pid logs/nginx.pid;
# <!-- 事件处理-->
events {
# <!-- 默认使用 -->
use epoll
# <!-- worker_connections 允许连接的客户端最大连接数 -->
worker_connections 1024;
# 并发总数是 worker_processes 和 worker_connections 的乘积
# 即 max_clients = worker_processes * worker_connections
# 在设置了反向代理的情况下,max_clients = worker_processes * worker_connections / 4 为什么
# 为什么上面反向代理要除以4,应该说是一个经验值
# 根据以上条件,正常情况下的Nginx Server可以应付的最大连接数为:4 * 8000 = 32000
# worker_connections 值的设置跟物理内存大小有关
# 因为并发受IO约束,max_clients的值须小于系统可以打开的最大文件数
# 而系统可以打开的最大文件数和内存大小成正比,一般1GB内存的机器上可以打开的文件数大约是10万左右
# 我们来看看360M内存的VPS可以打开的文件句柄数是多少:
# $ cat /proc/sys/fs/file-max
# 输出 34336
# 32000 < 34336,即并发连接总数小于系统可以打开的文件句柄总数,这样就在操作系统可以承受的范围之内
# 所以,worker_connections 的值需根据 worker_processes 进程数目和系统可以打开的最大文件总数进行适当地进行设置
# 使得并发总数小于操作系统可以打开的最大文件数目
# 其实质也就是根据主机的物理CPU和内存进行配置
# 当然,理论上的并发总数可能会和实际有所偏差,因为主机还有其他的工作进程需要消耗系统资源。
# ulimit -SHn 65535
}
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 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,
#对于普通应用,必须设为 on,
#如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,
#以平衡磁盘与网络I/O处理速度,降低系统的uptime.
sendfile on;
# <!-- 数据包到达一定大小时,在发送-->
#tcp_nopush on;
# <!-- 客户端连接服务器的超时时间(s) -->
#keepalive_timeout 0;
keepalive_timeout 65;
# <!-- 传输内容压缩,减小体积 -->
#gzip on;
gzip_disable "MSIE [1-6].";
# <!-- 设定请求缓冲 -->
client_header_buffer_size 128k;
large_client_header_buffers 4 128k;
server {
# <!-- 服务器监端口号 -->
listen 80;
# <!-- 服务器名称(域名) -->
server_name localhost;
#charset koi8-r;
# <!-- #设定本虚拟主机的访问日志 -->
#access_log logs/host.access.log main;
# <!-- 默认请求,打开文件 -->
location / {
root html;
# <!-- 定义首页索引文件的名称 -->
index index.html index.htm;
}
# <!-- 定义错误页面 -->
#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;
}