nginx部署操作说明
#user nobody;
worker_processes 1; #启动进程,通常设置成和cpu的数量相等 #error_log logs/error.log;
#error_log logs/error.log notice; #此处将优先级设置为warn
#error_log logs/error.log info;
#pid logs/nginx.pid;
噻吩磺隆
#工作模式及连接数上限
events {
worker_connections 1024; #单个后台worker process进程的最大并发链接数我还缺少什么
# 并发总数是 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和内存进行配置
# 当然,理论上的并发总数可能会和实际有所偏差,因为主机还有其他的工作进程需要消耗系统资源。
}
http {
#设定mime类型,类型由pe文件定义
include pes;
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;
#upstream属于handler,只是他不产生自己的内容,而是通过请求后端服务器得到内容,所以才称为upstream(上 游)
#A网站
upstream ningyuanServer {
server ip地址;
}
#B网站
upstream nyxServer {
server IP和端口;
}
#连接超时时间
#客户端长链接失效时间。
keepalive_timeout 65;
#和后端建立连接的超时时间
proxy_connect_timeout 5;
#从后端读取数据的超时时间,两次读取操作的时间间隔如果大于这个值,和后端的连接会被关闭。如果一个请求时间时间非常大,要把这个值设大点。
proxy_read_timeout 60;
#向后端写数据的超时时,根据TCP ACK 判断是否需要关闭此链接
proxy_send_timeout 5;
#设置缓冲区大小,从代理后端服务器取得的第一部分的响应内容,存储upstream端response的header。
proxy_buffer_size 16k;
#设置缓冲区的大小和数量,从被代理的后端服务器取得的响应内容,会放置到这里. 默认情况下,一个缓冲区的大小等于内存页面大小,可能是4K也可能是8K,这取决于平台。
血氧探头 #计算PAGESIZE ,参考公式:###
proxy_buffers 4 64k;
#控制同时传输到客户端的buffer数量的
proxy_busy_buffers_size 128k;
#开启gzip压缩三羟甲基丙烷
#gzip可以减少传输带宽
gzip on;
#设置允许压缩的页面最小字节数,页面字节数从header头得content-length中进行获取。默认值是0,不管页面多大都压缩。建议设置成大于1k的字节数,小于1k可能会越压越大。
盐城市第一小学教育集团 gzip_min_length 1K;
#设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。4 8k代表以8K为单位,安装原始数据大小以8k为单位的4倍申请内存。
gzip_buffers 4 8k;
#识别http的协议版本(1.0/1.1)
gzip_http_version 1.1;
#gzip压缩比,1压缩比最小处理速度最快,9压缩比最大但处理速度最慢(传输快但比较消耗cpu)
gzip_comp_level 4;
#匹配mime类型进行压缩
gzip_types application/json text/plain text/xml text/css text/javascript application/javascript;
#iis 86的转发
###域名
server {
listen 80; # 监听的端口
server_name 域名; # 对应的域名
#charset koi8-r;
#access_log logs/host.access.log main;
# 一般来说一个请求url过来,nginx会将它解析到某一个location来处理。
location / {
proxy_pass ningyuanServer; # 反向代理目标地址
proxy_redirect off; #需要修改从被代理服务器传来的应答头中的"Location"和"Refresh"字段,可以用这个指令设置
proxy_set_header Host $host; # host保持不变
proxy_set_header X-Real-IP $remote_addr; #客户端的地址
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。它不是RFC中定义的标准请求头信息。
}
}
#服务器转发
server {
listen 80;
server_name 域名;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass nyxServer;
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;
}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
王茂俊 # index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;