Nginx入门到搭建
创始人
2024-03-22 14:00:27

前言

        上一篇文章我们分享了Linux的软件安装以及项目后端的部署,本篇文章将要分享的内容是,Nginx的入门安装、反向代理、负载均衡等。


一、Nginx简介

        Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)
代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实
上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站
用户有:百度、京东、新浪、网易、腾讯、淘宝等。

特点

更快:单次请求响应更快,高并发可以更快的处理响应

高拓展性:设计极具扩展性,由多个不同功能、不同层次、不同类型且耦合度极低的模块组成

高可靠性:很多高流量网站都在核心服务器上大规模使用 Nginx

低内存消耗:一般1万个非活跃的 HTTP Keep-Alive 连接在 Nginx 中仅消耗2.5MB内存

高并发:单机支持10万以上的并发连接

热部署:master 管理进程与 worker工作进程的分离设计,使得 Nginx 能够支持热部署

开源协议:使用 BSD 许可协议,免费使用,且可修改源码
 

 二、反向代理

在介绍反向代理之前先讲一下什么是正向代理

正向代理指的是,一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端

把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理

上图:

 讲完正向代理,现在该分享一下反向代理。

反向代理指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP地址。

上图:

 这样我们访问百度是用www.baidu.com,而不是他的真实服务器的ip

讲了反向代理,那么为什么要用反向代理呢?

1、可以起到保护网站安全的作用,因为任何来自Internet的请求都必须先经过代理服务器。

隐藏了真实的ip地址。

2、通过缓存静态资源,加速Web请求

3、实现负载均衡

三、负载均衡

 目前市面上,主流的负载均衡方案,硬件设备有F5,软件方案有四层负载均衡的LVS,七层负载均衡的Nginx、Haproxy等

本文分享的内容是使用Nginx做负载均衡。

那么什么是负载均衡呢?

负载均衡是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快。

打个比方,某电商平台淘X,在双十一期间用户访问量很大,一个服务器肯定是不够的,而且承担的压力蛮大。通过负载均衡我们将所有的请求分摊在配置好的服务器中,根据服务器的性能,我们可以通过设置权重来分配各个服务器的分摊量。这样能更好的提升客户的使用体验。

就算一个服务器崩了,还有其他服务器在使用,不会导致整个软件无法使用。

四、案例

        讲完理论咱们实践一手,用Nginx搭建前端项目并且实现负载均衡。

        1、安装Nginx 

         1.1、添加 nginx 官方提供的 yum 源 

rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.14.2-1.el7_4.ngx.x86_64.rpm

  

使用yum安装Nginx

 yum install nginx

        1.2、启动以及设置开机启动

systemctl start nginx.service
 systemctl enable nginx.service

        1.3、设置防火墙开放80端口

firewall-cmd --zone=public --add-port=80/tcp --permanent

firewall-cmd --reload && firewall-cmd --list-port

        1.4、测试是否可用 

 能到这个界面就是安装成功且可用了。

        2、Tomcat负载均衡

这里做负载均衡需要多个服务器,我们直接复制一份解压好的,过程就不展示了

然后我们将复制的Tomcat的配置修改一下 

        1. HTTP端口,默认8080,改为8081
        2.远程停服务端口,默认8005,改为8006
        3.AJP端口,默认8009,改为8010

防火墙开放8081端口

firewall-cmd --zone=public --add-port=8081/tcp --permanent

firewall-cmd --reload && firewall-cmd --list-port

启动服务,测试访问

上面的步骤弄完,现在可以开始Nginx的配置了。

找到nginx.conf文件,进行配置

upstream  tomcat_list {  #服务器集群名字
    server    127.0.0.1:8080  weight=1;   #服务器1   weight是权重的意思,权重越大,分配的概率越大。
    server    127.0.0.1:8081  weight=1; #服务器2   weight是权重的意思,权重越大,分配的概率越大

在default.conf中添加

location / {
      #root   /usr/share/nginx/html;
      #proxy_pass   http://172.17.0.3:8080;
      proxy_pass   http://tomcat_list;
      index index.html index.htm;
  }

重启Nginx服务让配置生效

systemctl restart nginx

测试是否生效

 

  最终的结果就是,Nginx访问一个网址,是由两个tomcat共同承担压力;

        3、前端项目部署

          我们是希望能用www.zhw.com就能访问我们的项目

我们现在试着访问www.baidu.com

 可以看到访问的不是百度,而是我们的项目。

因为这是我们直接编码的服务地址,会优先执行我们本机的地址,如果本机没有,它将会执行公网的。公网就是我们日常进入的网站,而这个hosts是我们本机的。   

          3.1、本地测试

将前端项目打包,生成dist文件夹,点击index.html访问项目测试
npm run build

       

         3.2、C:\Windows\System32\drivers\etc\hosts中增加映射关系

        

        3.3、default.conf配置

        3.4、重启测试


总结

        本文分享了Nginx的负载均衡、反向代理以及前端项目的部署,在实际项目中的应用需要靠自己完成。本次分享就到此为止,本人技术有限,如有错误还望指正,谢谢啦。

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...