nginx.conf配置
#常用Nginx命令
nginx # 打开Nginx
nginx -t # 查看Nginx状态
nginx -s reload # 重新载入配置文件
nginx -s reopen # 重启Nginx
nginx -s stop # 强行停止Nginx
nginx -s quit # 优雅停止Nginx
# nginx.conf
user root;
worker_processes 1;#工作进程的个数,一般与计算机的cpu核数一致
events {
worker_connections 1024;#单个进程最大连接数(最大连接数=连接数*进程数)
}
http {
include mime.types;#文件扩展名与文件类型映射表
default_type application/octet-stream;#默认文件类型
sendfile on;#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
keepalive_timeout 65;#长连接超时时间,单位是秒
# 开启gzip on为启用,off为关闭
gzip on;
gzip_static on;
# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_min_length 1k;
# gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间,越小压缩效果越差,但是越大处理越慢,所以一般取中间值;
gzip_comp_level 3;
# 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
# 禁用IE 6 gzip
gzip_disable “MSIE [1-6].”;
# 设置压缩所需要的缓冲区大小
gzip_buffers 4 16k;
#跟Squid等缓存服务有关,on的话会在Header里增加 "Vary: Accept-Encoding"
gzip_vary off;
#服务器的集群
# max_fail 设置在fail_timeout参数设置的持续时间内发生的与服务器通信的不成功尝试次数,如达到该值以认为服务器在fail_timeout参数设置的持续时间内部可用、默认为1
# fail_timeout 1.判断服务器是否可用的周期,在该周期内如有max_fail次无法正常通信,则认为该服务器不可用;2.服务器在判断为不可用后,持续标识为不可用的时间,期间不会发送任何请求到该服务器。默认为10
# weight 默认为1,按照比例分发请求
# backup 当非backup服务器出现不可用,则启用由该指令标识的服务器,平时服务器不分配流量
# solw_start 不可用服务器变为可用,在该参数所指定的时间内,weight值从0增长为增长为weight值,该参数无法和hash,ip_hash,randon公用
# max_conn 服务器的最大连接数,如没有配置zone,为每个worker独立计算,如配置zone,为整体最大连接限制
upstream myproject {
# least_conn 当前连接最小的服务器优先
ip_hash; #对客户端IP取hash,根据hash值分发
server 127.0.0.1:8080 max_fail=10 fail_timeout=30s max_conns=300;
server 127.0.0.1:8081 max_fail=10 fail_timeout=30s slow_start;
server 127.0.0.1:8082 max_fail=10 fail_timeout=30s backup;
server 127.0.0.1:8083 max_fail=10 fail_timeout=30s down;
}
server {
listen 80;
server_name localhost;
#设置访问路径
#location / {
#root /xxx/dist; # 路径改成自己的dist路径
#try_files $uri $uri/ /index.html; #防止刷新页面时404
#index index.html index.htm;#访问文件名称
#}
location / {
proxy_buffering on; #服务器发送的数据会被立即发送给客户端
proxy_pass http://myupstream;
}
#反向代理
location /prod-api/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;#使用$remote_addr的值,该值为客户端IP地址
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#该报文头是一个list,如该请求被多次代理转发,在每次的转发中,每一级级转发服务器都可以将自己的IP地址添加到这个list,$proxy_add_x_forwareded_for这个变量继承来原来报文头中的X-Forwarded-For报文内容,并且把nginx自己的ip地址添加在最后
proxy_pass http://localhost:8080/; #设置监控后端启动的端口
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}