Linux环境下nginx的简单使用

nginx简单使用

1 Nginx反向代理

  1. 概念
    反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

  2. 首先理解正向代理
    在这里插入图片描述
    正向代理是针对你的客户端,而反向代理是针对服务器的,如下图
    在这里插入图片描述
    在这里插入图片描述

  3. 配置反向代理
    将项目部署到tomcat中webapps的ROOT目录
    在这里插入图片描述

  4. 修改nginx主机配置文件
    在这里插入图片描述

  5. 重新启动配置
    ./nginx -s reload
    在这里插入图片描述

  6. 通过浏览器访问
    在这里插入图片描述


2. 负载均衡

  1. 概念
    负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
    负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
  2. 准备工作
    (1)将刚才的存放工程的tomcat复制三份,修改端口分别为9998 ,9997,9996 。
    (2)分别启动这三个tomcat服务。
    (3)为了能够区分是访问哪个服务器的网站,可以在首页标题加上标记以便区分。

修改配置文件
在这里插入图片描述
weight 是权重的意思 配置权重越高 访问的几率越大
ip_hash 配置同一个ip访问的是同一个tomcat
backup 是热备 平时不会访问 当其他服务宕机时才会开始访问

  1. 重新启动配置
    ./nginx -s reload
    在这里插入图片描述
  2. 通过浏览器访问
    此时就会交替访问 权重高的访问几率大 热备不会访问
    在这里插入图片描述

3 静态代理

把所有的静态代理的访问改为访问nginx,而不是访问tomcat,因为nginx更擅长静态资源的处理,性能更好,效率更高

3.1 方式一

  1. Nginx静态代理实现
    在nginx.conf文件进行配置即可实现(根据静态资源的格式/后缀名进行拦截)
    在nginx.conf配置文件中添加静态资源的location,
    当访问静态资源的时候,从linux服务器/opt/static目录下获取(举例)
    location ~ .*.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ {
    root /opt/static;
    }
    ~ 表示正则匹配
    . 第一个点 表示 任意字符
    * 表示一个或多个字符
    \ 是 转义字符
    | 表示或者
    $ 表示结尾
    这个正则就是找后缀是这些的文件,如果有就到 /opt/statis目录下找

  2. 配置完后刷新配置
    ./nginx -s reload

  3. 访问网页
    在这里插入图片描述

此时发现找不到js等静态资源
因为之前配置静态资源从 /opt/static下找 但此时此目录下没有静态资源
4. 把tomcat的静态资源放到opt/static目录下
在这里插入图片描述
5. 此时在访问,就可以了
在这里插入图片描述

3.2 方式二

  1. Nginx静态代理实现
    在nginx.conf文件进行配置即可实现(根据静态资源的访问目录,进行匹配)
    在nginx.conf配置文件中添加静态资源的location,
    当访问静态资源的时候,从linux服务器/opt/static目录下获取(举例)
    方式二:(根据静态资源所在的目录进行拦截)
    location ~ .*/(css|js|img|images|plugins) {
    root /opt/static;
    }
    ~ 表示正则匹配
    . 第一个点 表示 任意字符
    * 表示一个或多个字符
    \ 是 转义字符
    | 表示或者
    $ 表示结尾
    这个正则就是访问的资源中有这些路径,如果有就到 /opt/statis目录下找
    在这里插入图片描述

配置完后刷新配置
./nginx -s reload
再次访问
在这里插入图片描述


4. 动静分离

Nginx的负载均衡和静态代理结合在一起,可以实现动静分离,
动态资源 : 如jsp由tomcat或其他web服务器完成;
静态资源 : 如图片 css js 由nginx服务器完成;
各司其职,专注于做自己擅长的事情
动静分离充分利用了他们各自的优势,从而达到更高效合理的架构

  • 在日常开发中,前端请求静态文件比如图片资源是不需要经过后端服务器的,但是调用API这些类型的就需要后端进行处理请求,所以为了提高对资源文件的响应速度,我们应该使用动静分离的策略去做架构。我们可以将静态文件放到Nginx中,将动态资源的请求转发到后端服务器去进行进一步的处理。

为了方便演示 此处在同一个虚拟机上进行
1.简单流程

在这里插入图片描述
2. 如图所示
在一个虚拟机上可以启动多个nginx 只需指定不同的配置文件就行
使用命令复制两个nginx.conf
cp nginx.conf nginx81.conf
cp nginx.conf nginx82.conf

在这里插入图片描述
3. 配置nginx81.conf 和 nginx82.conf
nginx81.conf
82的和这个一样不过是把端口改为82

worker_processes  1;

pid  /usr/local/nginx/logs/nginx.pid;


events {
   worker_connections  1024;
}


http {
   include       mime.types;
   default_type  application/octet-stream;
   sendfile        on;
   keepalive_timeout  65;

   server {
       listen       81;  # 默认端口号
       server_name  www.ssm.com;  # 域名或ip

# 	location ~ .*\.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ 
#		{
#		  root /opt/static; 
#		}
   
   location ~ .*/(css|js|img|images|plugins) {
   	      root   /opt/static;
   }
       error_page   500 502 503 504  /50x.html; # 错误页面
       location = /50x.html {
           root   html;
       }
   }
}
  1. 配置nginx.conf
worker_processes  1;

pid  /usr/local/nginx/logs/nginx.pid;


events {
   worker_connections  1024;
}


http {
   include       mime.types;
   default_type  application/octet-stream;
   sendfile        on;
   keepalive_timeout  65;


   upstream tomcat-ssmwab1{
   #ip_hash;  #ip地址hash
   server 192.168.153.138:9998 weight=2; # 权重 weight
   server 192.168.153.138:9997;
   server 192.168.153.138:9996 backup;# 热备 backup
  }
   upstream static.ssmweb.com{
   #ip_hash;  #ip地址hash
   server 192.168.153.138:81;
   server 192.168.153.138:82;
   
  }
# 因为我的nginx都部署在一台虚拟机上
#所以这里的192.168.153.138是这台虚拟机的ip

   server {
       listen       80;  # 默认端口号
       server_name  www.ssm.com;  # 域名或ip

# 	location ~ .*\.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ 
#		{
#		  root /opt/static; 
#		}
   
   location ~ .*/(css|js|img|images|plugins) {
   	      proxy_pass http://static.ssmweb.com;
   }


       location  ~ .*\.(jsp|java|php)$ {
           # root   index;  # 默认访问的资源目录
         proxy_pass  http://tomcat-ssmwab1;
           index  login.jsp index.html index.htm ; # 默认访问资源名称
       }
       error_page   500 502 503 504  /50x.html; # 错误页面
       location = /50x.html {
           root   html;
       }
   }
}


  1. 进入到nginx 的sbin目录下
    分别启动三台nginx
./nginx -c /usr/local/nginx/conf/nginx.conf
./nginx -c /usr/local/nginx/conf/nginx81.conf
./nginx -c /usr/local/nginx/conf/nginx82.conf

查看nginx是否启动
ps -ef | grep -i nginx
在这里插入图片描述
访问项目
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caoweifeng12

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值