Nginx基础

目录

1丶什么是Nginx

2丶Nginx有什么作用

3丶Nginx如何使用

3.3丶前端静态网站部署 

3.4丶Nginx配置虚拟主机 (一个Nginx反向代理多个后端服务)

3.5丶测试访问 

3.6丶Nginx作为反向代理 

1丶什么是Nginx

      Nginx 是一个高性能的HTTP和反向代理web服务器(反向代理后端地址),同时也提供了IMAP/POP3/SMTP服务,其特点是占有内存少,并发能力强,Nginx上官网上解释一秒可以支持50000个并发连接。在实际的生产环境中,Nginx可以支持20000-40000个并发连接,目前众多公司都在Nginx。

2丶Nginx有什么作用

  1. 前端项目部署  
           项目开发完成后,前端项目需要服务器部署. 我们可以使用 vue-cli的打包命令:npm run build 将项目打成静态资源,拷贝到tomcat的ROOT目录中启动Tomcat ,但是有问题,tomcat是Servlet容器,处理静态页面效率低下,我们需要专门的http服务器(静态资源服务器)部署前端,Nginx就是其中一个。其他的如LVS,HAproxy等 即:把打包后的静态项目(Html+css+js),直接拷贝到Nginx,启动Nginx
  2. 虚拟主机配置
          使用Nginx虚拟主机配置,可以实现一个Nginx部署多个应用,前端使用Nginx部署静态网站,后端服务器使用Nginx进行反向代理
  3. 解决跨域问题
          在开发阶段我们可以在后端代码中配置跨域,使用Nginx做反向代理后,我们就可以在Nginx配置跨域
  4. 后端项目负载均衡器(反向代理)
    bf5c5f25f5bab2bcf835ac1e8317eadb.png

                 当我的后端应用做了集群之后,就会存在多个后端地址,那么浏览器访问哪个后服务器           呢?我们需要使用Nginx作为负载均衡器,将浏览器发送过来的请求按照负载均衡算法路                 由(分发)到多个后端应用服务器上,Nginx是一个负载均衡器.同时也是网关。

3丶Nginx如何使用

3.1丶安装:(演示Windows安装)

      绿色软件解压即可安装

3.2丶使用 :

nginx可以通过命令行来启动,
操作命令:

  • 启动: start  nginx.exe    localhost 默认端口是80
  • 停止: nginx.exe -s stop
  • 重新加载: nginx.exe -s reload

修改了配置文件的时候需要重新加载.
注意:启动闪退可能是80端口被占用解决方案: https://www.runoob.com/w3cnote/windows-finds-port-usage.html 。

3.3丶前端静态网站部署 

  1.       对前端项目的种类进行前端进行打包,对于Vue+ElementUI的前段项目通过 vuecli的命令 npm run build 将前段打包成静态资源,然后拷贝到Nginx中进行部署,
  2.      如果是传统的前段项目(html+css+js),直接将项目拷贝到Nginx中进行部署即可,无需使用相关打包命令。

3.4丶Nginx配置虚拟主机 (一个Nginx反向代理多个后端服务)

       虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的物理服务器划分成多个“虚拟”服务器(具体操作才Nginx的config文件中配置,重启即可)。

上传静态网站:

       (这里假设前端项目名字为wangluvip)
  前端门户项目(wangluvip_menhu)打包后上传至nginx/wangluvip_menhu目录下
  后端管理界面项目(wangluvip_houduan)打包上传至 nginx/wangluvip_houduan下

修改Nginx 的配置文件conf/nginx.conf

    server {
        listen       8081;
        server_name  localhost;#域名
        location / {
            root   wanglu_admin;
            index  index.html;
        }      
    }
    server {
        listen       80;
        server_name  localhost;#域名 
        location / {                                                                          
            root   wanglu_front;
            index  index.html;
        }        
    }

 验证nginx配置文件是否正确

   方法1. 进入nginx安装目录sbin下,输入命令

./nginx -t

  回显test is successful说明配置正确

方法2. 在启动nginx命令 -c 前加 -t

./sbin/nginx -t -c ./conf/nginx.conf

停止nginx

ps -ef|grep nginx

找到对应的nginx进程号 再使用 命令 :

kill - 9 进程号
  • 重启nginx服务: 

 进入nginx安装目录执行  ./sbin/nginx -s reopen 

3.5丶测试访问 

      地址栏输入http://localhost:80 查看对应效果 地址栏输入http://localhost:8081 查看对应效果

注意:这种配置方式的问题在于多个主机是通过端口来进行区分的,浏览器除了要更换域名还需要更换端口,如果解决这一问题我们需要为主机配置域名 

3.6丶Nginx作为反向代理 

  • 解释:不同域名或者不同地址转发给不同服务器
  • 为什么需要 :静态项目可以通过虚拟主机实现多个项目的部署,但动态tomcat网站就不行,nginx无法解释运行.我们可以将Nginx作为反向代理服务器,把动态资源代理给下游服务器。
  • 在这里解释一下正向代理和反向代理,
  • 正向代理:确切的知晓用户发起的请求是哪个服务器提供服务,由于种种原因不能直接访问,通过代理服务器转发请求,
  • 反向代理:用户请求Nginx时候,NGINX后端关联一组或者多组后端服务,用户其实是不知道真实不知道真实后端服务地址的,通过访问Nginx,Nginx通过相应的算法(随机,轮序,权重等)打到后端上。

反向代理配置:

server {
		listen       80;
		server_name  iswanglu.vip;#用户访问的门户地址

		location / {
		    proxy_pass http://127.0.0.1:8082; #访问域名为 iswanglu.vip都交给8082处理
		    index  index.html index.htm;
		}
	}    

反向代理的规则可以通过域名的不同来进行区别,也可以通过uri的不同来进行区别。 配置多个服务进行负载均衡

...省略...
upstream apis{ #负载均衡配置
		server 127.0.0.1:8083;
		server 127.0.0.1:8084;
	}
	
	server { #后台API
        listen       80; #监听的端口
        server_name  iswanglu.vip; #主机名

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

		# location的请求的url的映射规则  “/” 作用于所有的请求
		
		location / {
			proxy_pass  http://apis;
        }
	}

 常见的负载均衡算法:

  1. 随机 :生成一个随机值,随机的访问后端的服务器,
  2. 轮询:默认轮询,把请求以雨露均沾的方式分发都后端服务器上,一个服务器依次轮着访问,
  3. 指定权重 :通过设置权重值,权重值越大,被访问的机会就越高,
  4. IP绑定 ip_hash :根据ip进行hash计算 ,相同的hash的请求分发到相同的服务器上,
  5. url_hash :根据访问的url进行hash计算 ,相同的hash的请求分发到相同的服务器上,
  6. fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值