Nginx超详细入门教程

这篇具有很好参考价值的文章主要介绍了Nginx超详细入门教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、nginx配置文件介绍

二、nginx的核心功能

 1)反向代理

<1>正向代理

<2>反向代理

<3>准备工作

 2)负载均衡

3)负载均衡策略

4)动静分离

三、Nginx的高可用性

1)准备两台虚拟机并都安装nginx

2)需要在每一个nginx服务器上安装keepalived

3)修改keepalived的配置文件内容

 4)将 nginx_check.sh脚本文件放入/usr/local/src下

5)分别启动keepalived

6)访问虚拟ip

7)关闭主节点nginx并再次访问


一、nginx配置文件介绍

1)首先进入你自己的nginx安装的目录下找到nginx.conf文件并进入

nginx教程,nginx,java,服务器

2)进入nginx.conf文件后(vi nginx.conf),我们可以看到如下内容:

nginx教程,nginx,java,服务器

 3)自定义一个server

nginx教程,nginx,java,服务器

注意:修改了nginx配置文件,必须重新加载配置文件

./nginx -s reload

一个nginx可以对应多个server

4) 创建一个目录main并在该目录下创建一个main.html

nginx教程,nginx,java,服务器

 访问81端口:

(如果访问失败看是否放行了81端口)

nginx教程,nginx,java,服务器

二、nginx的核心功能

 1)反向代理

下面我们用借钱的例子来讲解一下正、反向代理。

<1>正向代理

拿借钱打个比方,A想向C借钱,但是C不认识A所以不借给他,然后A就通过B向C借钱,B借到钱之后再转交给A,在这个过程中B就扮演了一个正向代理的角色,这个过程中,真正借钱的人是谁,C是不知道的。

我们常说的代理也就是指正向代理,正向代理的过程,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求。

<2>反向代理

还用借钱的例子,A想向C借钱,然后C借给他了,但是实际上这个钱可能C向B借的~至于钱到底是谁的,A是不知道的。这里的C扮演着一个反向代理的角色,客户不知道真正提供服务的人是谁。

反向代理隐藏了真实的服务端,对于客户来说不知道访问的是哪台服务器。

nginx教程,nginx,java,服务器

<3>准备工作

1、准备一台真实服务器----tomcat项目。----把一个springboot项目并放入linux服务器系统中。

nginx教程,nginx,java,服务器

 2、运行springboot项目

java -jar springboot01-demo01.jar

nginx教程,nginx,java,服务器  

3、配置nginx来代理上面springboot真实项目服务

nginx教程,nginx,java,服务器

 记得重新加载nginx配置文件:

sbin目录下(./nginx  -s reload

放行端口号:firewall-cmd --add-port=82/tcp --zone=public --permanent

重启防火墙:systemctl restart firewall

4、浏览器访问nginx

nginx教程,nginx,java,服务器

 2)负载均衡

负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。

负载均衡通常配合nginx一起使用

nginx教程,nginx,java,服务器

准备两台真实服务器:

nginx教程,nginx,java,服务器

nginx重新加载配置文件。

nginx教程,nginx,java,服务器

3)负载均衡策略

  • 轮询策略。
  • 权重策略。
  • ip_hash策略。
  • 第三方插件。 

(1)轮询策略(默认使用)

(2)权重策略:----适合服务器的配置不同,被访问的频率不同。

nginx教程,nginx,java,服务器

(3)ip_hash策略: ----根据客户端的ip分配相应真实服务器。  

nginx教程,nginx,java,服务器

(4)第三方插件:(大多数付费) 

4)动静分离

把静态资源【css,js,img】交于nginx来处理,而动态资源【接口,jsp】还是有真实服务器处理。

好处: 当修改静态资源时,无需对每个真实服务器的静态资源做修改,只需要修改nginx一处的静态资源

nginx教程,nginx,java,服务器

创建一个springboot项目

nginx教程,nginx,java,服务器nginx教程,nginx,java,服务器 

配置nginx进行代理:

nginx教程,nginx,java,服务器

 在nginx中新建static文件夹将静态资源放入,并运行jar包进行访问。

三、Nginx的高可用性

思考:

1)nginx如果出现问题该怎么办?---------提高 高可用性

2)当主节点宕机后,如何让客户访问到从节点?-------虚拟一个ip,客户只需访问虚拟ip即可

3)如何让主节点和从节点之间能够切换?------使用keepalived组件来解决上面的问题,它会自动监控主从的状态,并可以帮nginx虚拟ip,还可在主从之间切换。

下面进入准备工作:

1)准备两台虚拟机并都安装nginx,192.168.232.166 192.168.232.167

2)需要在每一个nginx服务器上安装keepalived

yum install keepalived 安装keepalived

rmp -q -a keepalived 检查是否安装keepalived

默认安装路径:/etc/keepalived

3)修改keepalived的配置文件内容

将/etc/keepalived下的配置文件内容替换为下面的内容并进行修改:

global_defs {
	notification_email {
	  acassen@firewall.loc
	  failover@firewall.loc
	  sysadmin@firewall.loc
	}
	notification_email_from Alexandre.Cassen@firewall.loc
	smtp_ server 192.168.232.166
	smtp_connect_timeout 30
	router_id 192.168.232.166
}

vrrp_script chk_http_port {
	script "/usr/local/src/nginx_check.sh"
	interval 2
	weight -20
}

vrrp_instance VI_1 {
	state MASTER
	interface ens33
	virtual_router_id 51
	priority 100
	advert_int 1
	authentication {
		auth type PASS
		auth pass 1111
        }
	virtual_ipaddress { 
		192.168.232.50
	}
	#将 track_script 块加入 instance 配置块
	track_script {
	chk_http_port #执行 Nginx 监控服务
	}
}

nginx教程,nginx,java,服务器

 

 4)将 nginx_check.sh脚本文件放入/usr/local/src下:

#!/bin/bash
# 检查是否开启nginx
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
        systemctl stop keepalived
fi

两台虚拟机都要进行以上操作。

5)分别启动keepalived

systemctl start keepalived.service

并将两台nginx都开启:在其sbin目录下./nginx

6)访问虚拟ip

nginx教程,nginx,java,服务器

7)关闭主节点nginx并再次访问

/usr/soft/nginx/sbin/nginx -s stop 关闭nginx

nginx教程,nginx,java,服务器文章来源地址https://www.toymoban.com/news/detail-719662.html

到了这里,关于Nginx超详细入门教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Xshell7和Xftp7的下载、安装及连接服务器的教程(非常详细)从零基础入门到精通,看完这一篇就够了(附安装包)

    1.官网地址: XSHELL - NetSarang Website 选择学校免费版下载 2.将XSHELL和XFTP全都下载下来 安装过程就是选择默认选项,然后无脑下一步 1.打开Xshell7,然后新建会话 2.填写相关信息 出现Connection established表示连接成功 3…打开Xshell7,然后新建会话 4.然后点击文件夹这个图标,选中会

    2024年02月05日
    浏览(47)
  • 瑞萨MCU入门教程(非常详细的瑞萨单片机入门教程)

    得益于瑞萨强大的MCU、强大的软件开发工具(e² studio),也得益于瑞萨和RA生态工作室提供的支持,我们团队编写了《ARM嵌入式系统中面向对象的模块编程方法》,全书37章,将近500页: 讲解面向对象编程在单片机开发中的使用 结合FSP软件包实例分析外设驱动 讲解如何使用RASC配

    2024年02月08日
    浏览(45)
  • 分布式 - 服务器Nginx:一小时入门系列之Nginx环境准备

    1. Nginx 环境准备 虚拟机镜像,基于Centos7,网盘链接: https://pan.baidu.com/s/1NmCR-vdAcZLouRRn9V1yTA 密码: 1b60,虚拟机的用户名/密码:root/123456,使用的环境和应用放置在/home目录下: 目录 简介 说明 AdminLTE-3.2.0 静态web后台管理系统 静态web的配置演示 apps/ruoyi-admin.jar 若依后台管理系统

    2024年02月14日
    浏览(43)
  • python入门教程(非常详细)

    Python是一种高级、解释性的脚本语言,其简单易学、灵活、强大等特点,使其成为了当代最流行的编程语言之一。如果您是想学习Python编程的新手,以下是详细的Python入门教程,以帮助您快速掌握Python编程基础。   1. 安装Python   首先,您需要从Python官网(https://www.python.org/d

    2024年02月16日
    浏览(47)
  • React 超详细入门教程

    React 是一个用于构建用户界面的 JavaScript 库,主要用于构建 UI,而不是一个 MVC 框架,但可以使用 React 作为 MVC 架构的 View 层轻易的在已有项目中使用,它是一个用于构建用户界面的 JavaScript 库,起源于 Facebook 的内部项目,用来架设 Instagram 的网站,于 2013 年 5 月开源。 Rea

    2024年01月17日
    浏览(41)
  • ActiveMQ详细入门教程系列

    两个系统或两个客户端之间进行消息传送,利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。 消息中间件,总结起来作用有三个: 异步化提升性

    2024年02月15日
    浏览(45)
  • ESP8266入门教程11:连接MQTT服务器

    将第三方库PubSubClient下载到lib文件夹 git clone https://github.com/knolleary/pubsubclient.git 1、打开阿里云IOT官网,登录阿里云账号 https://iot.console.aliyun.com 2、创建实例 3、新建产品 4、自定义主题  5、添加设备  6、查看设备配置   1、修改PubSubClient.h头文件,否则无法连接阿里云MQTT服务

    2023年04月24日
    浏览(58)
  • 阿里云服务器入门教程汇总,从理论到实践

    这是一篇纯干货分享帖,不谈个人经验,只搬运牛人的技术“经验”。 ECS是阿里云很重要的一款云服务产品,大多数人的云端之旅也是从ECS开始,以下知识将从浅入深,从图文到视频,再到最佳实践,相信看过这些内容之后,您就可以飞升成为云计算达人啦。 1.百问百答之玩

    2024年02月16日
    浏览(44)
  • Nginx篇-Nginx详细安装教程

    Nginx是一款轻量级的 Web 服务器 、 反向代理服务器 及电子邮件(IMAP/POP3)代理服务器。 Web 服务器:通俗意义下的Web服务器可理解能处理静态资源,如html、css、js的服务器,其并发能力远高于应用服务器。 正向代理:通俗的讲就是Web服务器代替客户端去访问目标的服务器,此

    2024年02月16日
    浏览(39)
  • Git入门详细教程

    Git官网 Git是一个开源的 分布式版本控制系统 ,用于跟踪文件的变化和协作开发。它允许多个开发者在同一项目中共同工作,并能够有效地管理代码的版本和历史记录。Git可以帮助开发团队更好地协作,追踪代码变更,并且可以在需要时轻松地回滚到之前的版本。 版本控制是

    2024年01月19日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包