nginx使用

nginx是反向代理和负载均衡服务器

一、下载安装nginx

  1. nginx.org网址下下载stable 版本
  2. 下载完成后直接解压
  3. 在解压文件夹中打开命令行
  4. 输入start nginx.exe启动nginx
  5. 在浏览器中输入http://localhost/可以看到nginx已经启动

二、实现文件服务器

  1. 修改nginx.config文件,新建一个本地文件夹,配置文件虚拟服务器。
  2. 重启后在浏览器中输入http://file_server/test.txt,可访问本地文件数据

三、测试负载均衡

  1. 打开idea,新建两个微服务client1、client2
  2. 修改nginx.conf,新增负载均衡
  3. 新增反向代理服务,指向负载均衡服务
  4. 重启nginx,在浏览器中输入http://test2/sayHi,刷新多次可以看到请求在client1和client2中分配。

四、nginx.config

1. 配置文件结构
#全局块
...
#events块
events {         
   ...
}
#http块
http      
{
	#http全局块
    ...
	#server块  
    server        
    { 
		#server全局块
        ...
		#location块       
        location [PATTERN]   
        {
            ...
        }
    }
}
  • 全局块:

  • user nobody;->配置用户或者组,默认为nobody

  • worker_processes 1;->允许生成的进程数,默认为1

  • error_log log/error.log debug;-> 制定日志路径,级别。

  • pid logs/nginx.pid;-> 指定nginx进程运行文件存放地址

  • events 块一般是配置nginx连接的特性,如1个子进程能同时允许多少连接

  • worker_connections 1024;->单个进程最大连接数(最大连接数=连接数*进程数)

  • http块 这是配置http服务器的主要段

  • client_max_body_size 20000m;->设定通过nginx上传文件的大小

  • include mime.types;->文件扩展名与文件类型映射表

  • default_type application/octet-stream;->默认文件类型,默认为text/plain

  • 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;->combined为日志格式的默认值

  • proxy_set_header Cookie $http_cookie;->设置代理服务器Cookie

  • proxy_set_header Host $host;->设置代理服务器Host

  • proxy_set_header Remote_Addr $remote_addr;->设置代理服务器Remote_Addr

  • proxy_set_header X-Real-IP $remote_addr;->表示将客户端的ip地址,加入到http请求头部中;

  • proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;->表示如果中间经过多级代理,则将所有代理的IP全部加入请求头部中;

  • sendfile on;->开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。

  • tcp_nopush on;->防止网络阻塞

  • keepalive_timeout 65;->长连接超时时间,单位是秒,默认为0

  • proxy_read_timeout 600;->连接成功后,后端服务器响应时间(代理接收超时)

  • proxy_send_timeout 600;->后端服务器数据回传时间(代理发送超时)

  • server_names_hash_bucket_size 64;->高负荷下缓冲大小(proxy_buffers*2)

  • gzip on;->开启gzip压缩输出

  • upstream local_tomcat->设定负载均衡后台服务器列表

  • include vhost_che_boot/*.conf;->加载扩展配置文件

  • server块 这是虚拟主机段

  • listen 80;->监听端口

  • server_name www.v3che.com;->域名

  • root che_boot_html;->根目录

  • access_log logs/www.v3cheboot.access.log main;->定义本虚拟主机的访问日志

  • add_header Cache-Control max-age=86403;->添加缓存控制

  • index index.htm;->设置默认页

  • location块 定位,把特殊的路径或文件再次定位

       (location =) > (location 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分起始路径) > (/)   
      以=开头表示精确匹配  
      ^~ 开头表示uri以某个常规字符串开头,不是正则匹配  
      ~ 开头表示区分大小写的正则匹配;  
      ~* 开头表示不区分大小写的正则匹配  
      / 通用匹配, 如果没有其它匹配,任何请求都会匹配到
    
  • location /->因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求

  • location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ {expires 10d;}->图片缓存时间设置

  • location ~ .*.(js|css)?$ {expires 1h;}->JS和CSS缓存时间设置

  • location = / {}->精确匹配 / ,主机名后面不能带任何字符串

  • location /documents/ {}->1. 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索 2. 只有后面的正则表达式没有匹配到时,这一条才会采用这一条

  • location ~ /documents/Abc{}->1. 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索 2. 只有后面的正则表达式没有匹配到时,这一条才会采用这一条

  • location ^~ /images/ {}->匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。

  • location ~* \.(gif|jpg|jpeg)${}->匹配所有以 gif,jpg或jpeg 结尾的请求

  • proxy_pass http://local_tomcat;->设置要代理的local_tomcat 定义的服务器列表

  • rewrite /pingce/ /che_v3/getDriverNewsData?outFile=/pingce/index.htm break;->rewrite功能就是集合正则表达式和标志位实现url重写和重定向。rewrite只能放在server{}、location{}、if(){}块中,并且只能对域名后边的出去传递参数外的字符串起作用。

  • try_files $uri $uri/ @aaaaa;比如用户访问这个网地址:http://www.xxx.com/test.html
    try_files首先会判断他是文件,还是一个目录,结果发现他是文件,与第一个参数 u r i 变 量 匹 配 , uri变量匹配, uri,uri=/test.html。
    然后去到网站目录下去查找test.html文件是否存在,如果存在直接读取返回。如果不存在直接跳转到第三个参数.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值