Nginx安装、下载、介绍、入门

Nginx介绍

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

Nginx下载

在这里插入图片描述

Nginx安装

  1. Nginx安装路径不要放到C盘 要求路径中不能有中文+空格------职业操作
  2. 要求以超级管理员的权限 启动nginx服务器. 动态获取权限.
  3. 检查任务管理器 查看是否有nginx服务项

在这里插入图片描述

1.224k的是守护进程,1.508k的是主进程

  1. 浏览器访问nginx服务器.

在这里插入图片描述

Nginx安装中遇到的问题

  • nginx不能正常启动.

执行了nginx启动命令之后,在任务管理中 详细信息中检查是否有服务. 如果没有则表示nginx启动异常.

  • 一般检查80端口是否被占用
输入命令:netstat -ano,列出所有端口的情况。在列表中我们观察被占用的端口
*查看被占用端口对应的PID,输入命令:netstat -aon|findstr "80",回车,记下PID
(可不要这个步骤)继续输入tasklist|findstr "5544",回车,查看是哪个进程或者程序占用了5544PID
*打开任务管理器结束PID:5544的进程或程序

Nginx命令

关于Nginx进程项说明

Nginx每次启动时会生成2个进程项:

  1. 主进程: 主要提供nginx反向代理服务的.
  2. 守护进程 防止主进程意外关闭的.
    如果需要关闭nginx,则应该先关闭守护进程,再关闭主进程.

基本命令

前提条件: 要求在nginx的根目录中执行cmd命令.
规范: 启动nginx之后,执行nginx的重启指令,检查是否有异常.

启动nginx     	start nginx            即使启动不成功,也不会报错!!!!
重启nginx      	nginx   -s  reload     如果配置文件编辑异常,则会显示报错信息
停止nginx      	nginx   -s  stop

反向代理入门案例

	http {#使用的什么协议
		server {#反向代理的具体服务信息
    		
       		 listen       80;    # 监听端口号
        	server_name  localhost;   # 监听的服务名称
	
			#反向代理的配置,获取用户指定的请求之后,将请求转向到什么位置(路径转向)
			#  / 请求访问的根目录
        	location / {
	   		 #  root关键字   反向代理文件目录  
	   		 #将localhost:80 映射到目录D:/java/LX中,
	   		 #访问localhost:80时实际上访问的是D:/java/LX目录
             root   D:/java/LX;
             
             #映射到nginx自带的html文件中
             root   html;
	    	 #	index关键字   默认跳转页面
	    	 #输入localhost时跳转的初始页面(默认是html文件中的index.html)
            index  index.html index.htm;
        	}
        }
        #反向代理服务   一个服务就是一个service
        
		#配置域名代理
	   	server {
			listen		80;
			server_name	www.sky.com;
			location / {
			#代理的是服务器地址www.sky.com访问的是localhost:8080
			proxy_pass   http://localhost:8080;
			}
	 
	   	}
	}

localhost的主页面
在这里插入图片描述

网络访问链路说明

HOSTS文件记录了本机访问的域名与IP的映射关系
在这里插入图片描述

编辑HOSTS文件

C:\Windows\System32\drivers\etc

在这里插入图片描述

利用switchHosts编辑文件

switchHosts文件方便一点不要每次都顺着路径找(所以可以不用)

127.0.0.1   www.sky.com;
  • 如果没有权限,修改hosts文件权限

右键属性- - ->安全- - ->给所有权限打钩- - ->添加- - ->输入当前计算机名称

Nginx负载均衡策略

  • 什么是负载均衡

在这里插入图片描述

准备多台tomcat服务器

规划说明

准备3台tomcat服务器,并且端口号依次为8091/8092/8093,之后完成项目Windows部署.

编辑MsgController

说明:动态获取当前服务器端口号信息

package com.sky.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MsgController {

	@Value("${server.port}")
	private int port;
	//主要获取当前访问服务器的端口号信息!!!
	@RequestMapping("/getPort")
	public String getMsg() {
		return "您当前访问服务器的端口号:"+port;
	}
}

项目打包

注意事项:
1).按照规定修改端口号信息 8091/8092/8093
2).将项目整体打包部署.
3).打完包保存为 8091/8092/8093

项目发布

  • cmd中发布 8091/8092/8093

利用命令实现项目发布: java -jar 8089.war

  • 说明: 通过命令发布项目之后,浏览器访问速度较慢.(不正常)
    关闭方式:
    方式1: 直接关闭当前dos命令窗口
    方式2: ctrl + c 方式 释放资源.

Nginx实现负载均衡

负载均衡需求说明

要求: 通过http:// www.sky.com 方式 依次访问8091/8092/8093服务器.

	#配置域名代理
   	server {
		listen		80;
		server_name	www.sky.com;

		location / {
		#代理的是服务器地址
		#proxy_pass   http://localhost:8091;
		proxy_pass   http://sky1;
		#proxy_pass   http://sky2;
		#proxy_pass   http://sky3;
		}
   	}

1.负载均衡策略----轮询(默认)

 	#1.轮询策略(默认)
 	upstream sky1{
		server localhost:8091 down;		#标记宕机(down)之后就不会再访问
		server localhost:8092;
		server localhost:8093 backup; 	#备用机(backup)正常情况下不会访问,只有主机宕机或主机遇忙时才会生效
 	}

2.负载均衡策略----权重策略(weight)


 	upstream sky2{
		server localhost:8091 weight=6 max_fails=1 fail_timeout=60s;
		server localhost:8092 weight=3 max_fails=1 fail_timeout=60s;
		server localhost:8093 weight=1 max_fails=1 fail_timeout=60s;
    }

负载均衡策略—IPHASH策略

说明: 如果需要用户与后端服务器进行绑定时,可以使用IPhash策略.
案例A: 有时用户可能做登录操作,可能将用户信息保存到session对象 中,如果这时采用轮询/权重的策略,可能访问其他的业务服务器.导致用户频繁的登录.

upstream sky3{
	ip_hash;	#一般只做测试时用
	server localhost:8091 weight=6;		#宕机(down)
	server localhost:8092 weight=3;
	server localhost:8093 weight=3;	 	#备用机(backup)
}

IPHASH原理:
在这里插入图片描述
补充知识:
1).IPHASH一般只做测试时用.
2).使用IPHASH可能造成负载不均的现象. 某些服务器负载压力过高.有宕机的风险.
3).使用IPHASH时,如果后端服务器宕机,则直接影响用户的使用.
4).工作中如果需要实现用户信息的共享,一般采用SSO的方式进行.
用户只需一次登录就可以访问所有相互信任的应用系统

属性介绍

down属性(要手动标识)

说明:如果遇到某台tomcat服务器宕机,则可以通过down属性标识故障机,则nginx永远不会主动访问故障机.

backup 属性

说明: backup的作用表示标识备用机. 一般情况下备用不工作.当遇到主机全部宕机或遇忙时,这时备用机才会生效.

设定访问超时

属性说明:
1.max_fails=1 允许访问失败的最多次数
2.fail_timeout=60s 失败的超时时间(理解为时间区间,60s内不会再次访问故障机)
当服务器宕机时,这时配置文件还没有被标识为down时.开启了高可用的机制. 只要失败的次数超过最大失败次数,则
在指定的时间周期之内,不会再次访问故障机.

关于Nginx工作原理说明

默认条件下,nginx会按照指定的负载均衡规则访问服务器。如果访问的服务器又出现了问题,那么则会访问下一台服务器。但是随着负载均衡的继续,任然访问故障机.效率低.

猜你喜欢

转载自blog.csdn.net/SkyCloud_/article/details/108420843