nginx

常用命令

默认安装在**/usr/local/nginx**下

[root@nginx nginx]# ll
总用量 0
drwx------ 2 nobody root   6 5月  17 07:19 client_body_temp
drwxr-xr-x 2 root   root 333 5月  19 05:24 conf               # nginx配置文件目录
drwx------ 2 nobody root   6 5月  17 07:19 fastcgi_temp  
drwxr-xr-x 2 root   root  40 5月  17 07:18 html               # nginx静态资源文件目录
drwxr-xr-x 2 root   root  58 5月  18 08:24 logs
drwx------ 2 nobody root   6 5月  17 07:19 proxy_temp
drwxr-xr-x 2 root   root  19 5月  17 07:18 sbin               # 可执行文件目录
drwx------ 2 nobody root   6 5月  17 07:19 scgi_temp
drwx------ 2 nobody root   6 5月  17 07:19 uwsgi_temp

启动

./nginx

停止

./nginx -s stop

重新加载配置文件

./nginx -s reload

nginx版本

./nginx -v  # 只查看nginx版本
./nginx -V  # nginx版本、Gcc版本、./configire参数

反向代理

Nginx反向代理配置

将对nginx的请求反向代理到http://localhost:8082

http {
	server {
  	# 监听的端口
  	listen       80;
  	# 监听的域名
    # server_name  192.168.8.208;
		# 将指定的文件或目录重新定位
    location / {
      # 请求的根路径
      # root   html;
      # 定义索引,按顺序匹配
      # index  index.html index.htm;
   		proxy_pass http://192.168.8.120:8082;
    }
	}
}

根据不同的访问域名跳转到不同的服务器

http://192.168.8.123/edu/  ->  tomcat8081
http://192.168.8.123/vod/  ->  tomcat8082
  1. 在tomcat8081 / tomcat8082 下新建项目文件

    /usr/local/tomcat/tomcat8081/webapps
    在这里插入图片描述

    /usr/local/tomcat/tomcat8082/webapps
    在这里插入图片描述

  2. nginx配置

    server {
      # 监听的端口
      listen       80;
      location ~ /edu/ {
        proxy_pass http://192.168.8.120:8081;
      }
      location ~ /vod/ {
        proxy_pass http://192.168.8.120:8082;
      }
    }
    
location 指令说明

该指令用于匹配URL,语法如下

location [ = | ~ | ~* | ^~] uri {

}
  • = :用于不包含正则表达式的uri前,要求请求字符与 uri 严格匹配,如果匹配成功,停止搜索其它匹配路径,直接处理请求
  • ~ :用于表示 uri 包含正则表达式,并区分大小写
  • ~* :用于表示uri包含正则表达式,不区分大小写
  • ^~ :用于不包含正则表达式的 uri 前,要求 Nginx服务器找到表示 uri 和 请求字符串匹配度最高的 location 后,立即使用该location进行处理请求,而不再使用location块中的正则表达 uri 和请求字符串做匹配
server_name 说明

用于域名匹配解析,匹配顺序如下:

  1. 准确的 server_name 匹配

    server {
      listen 80;
      server_name test123.com www.test123.com;
    }
    
  2. 以 * 通配符开始的字符串

    server {
      listen 80;
      server_name *.test123.com ;
    }
    
  3. 以 * 通配符结束的字符串

    server {
      listen 80;
      server_name www.*;
    }
    
  4. 正则表达式

    server {
      listen 80;
      server_name ~^(?.+)\.test123\.com;
    }
    

从上向下,优先级依次降低,匹配成功后停止向下匹配

负载均衡

负载配置

对nginx的请求会转发到不同的tomcat中

http {

    upstream hello {
       server 192.168.8.120:8081 ;
       server 192.168.8.120:8082 ;
    }
    # 虚拟主机配置
    server {
        # 监听的端口
        listen       80;
       
        location / {
           proxy_pass http://hello;
        }
    }
}
Nginx upstream的5种权重分配方式
  1. 轮询(默认)

    每个请求按时间顺序逐一分配到不同的后端服务器,后端服务器宕机时自动删除

    upstream hello {
    	server 192.168.8.120:8081 ;
    	server 192.168.8.120:8082  ;
    }
    
  2. weight

    指定轮询几率,根据weight的比例进行分配

    upstream hello {
    	server 192.168.8.120:8081 weight=4;
    	server 192.168.8.120:8082 weight=1;
    }
    
  3. ip_hash

    每个请求按访问ip的hash结果进行访问,这样每个ip每次都访问一个后端服务器,解决session问题

    upstream hello {
      ip_hash;
    	server 192.168.8.120:8081 ;
    	server 192.168.8.120:8082  ;
    }
    
  4. fair(第三方)

    按服务器的响应时间来分配请求,响应时间短的优先分配

    upstream hello {
    	server 192.168.8.120:8081 ;
    	server 192.168.8.120:8082  ;
    	fair;
    }
    
  5. url_hash(第三方)

    按访问url的hash结果分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

    upstream hello {
    	server 192.168.8.120:8081 ;
    	server 192.168.8.120:8082 ;
    	hash $request_uri;
    	# 使用的hash算法
    	hash_method crc32;
    }
    

动静分离

  1. 创建静态资源文件目录
    在这里插入图片描述

  2. nginx配置

    server {
      listen       80;
      server_name  192.168.8.120;
    
      location /www/ {
        root   /data/;
        index  index.html index.htm;
      }
    
      location /image/ {
        root   /data/;
        # 显示静态资源目录
        autoindex on ;
      }
    }
    
  3. 请求静态资源 图片路径 http://192.168.8.120/image/
    在这里插入图片描述

  4. 请求静态资源 html http://192.168.8.120/www/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值