IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> java学习---Nginx 反向服务代理 -> 正文阅读

[系统运维]java学习---Nginx 反向服务代理

Nginx

1、什么是Nginx

? Nginx 是?款?性能的 http 服务器/反向代理服务器及电?邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师伊?尔·?索夫(Igor Sysoev)所开发,官?测试 nginx 能够?撑 5 万并发(但实际上达到 3 万已经很好了),并且 cpu、内存等资源消耗却?常低,运行非常稳定。

?1.1、Nginx的应用场景

  • http 服务器

Nginx 是?个 http 服务可以独?提供 http 服务。可以做网页静态服务器。

  • 虚拟主机

可以实现在?台服务器虚拟出多个虚拟主机。

  • 反向代理,负载均衡

当?站的访问量达到?定程度后,单台服务器不能满??户的请求时,需要?多台服务器集群可时以使? nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载?宕机?某台服务器闲置的情况(也可以配置某台主机承受较大的访问)。

?1.2、安装Nginx

?为了环境兼容方便,我们这里采用 docker 来安装镜像使用,前提已安装并启动 docker 的服务。

  • 搜索 nginx 镜像
docker search nginx
  • 拉取 nginx 镜像
docker pull nginx
  • 创建容器,设置端口映射、目录映射
# 在/root?录下创建nginx?录?于存储nginx数据信息,以及配置信息
mkdir ~/nginx
cd ~/nginx
mkdir conf
cd conf
# 在conf/下创建nginx.conf?件,用于nginx的配置
vim nginx.conf
  • 填充配置信息

    user nginx;
    worker_processes 1;
    
    error_log /var/log/nginx/error.log warn;
    pid /var/run/nginx.pid;
    
    events {
     	worker_connections 1024;
    }
    http {
     	include /etc/nginx/mime.types;
     	
    	default_type application/octet-stream;
     	log_format main '$remote_addr - $remote_user [$time_local] "$request" '
     					'$status $body_bytes_sent "$http_referer" '
     					'"$http_user_agent" "$http_x_forwarded_for"';
     	
     	access_log /var/log/nginx/access.log main;
     	sendfile on;
     	#tcp_nopush on;
     	keepalive_timeout 65;
     	
     	#gzip on;
     	# 其他的配置信息不用管,注意这个配置是指定之后的服务端口配置文件的地址和命名规范
     	include /etc/nginx/conf.d/*.conf;
    }
    
  • 开启容器

    docker run -id --name=c_nginx \
    # 映射三个端口
    -p 80:80 \
    -p 81:81 \
    -p 82:82 \
    # 指定配置文件
    -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
    # 指定服务配置文件地址
    -v $PWD/conf.d:/etc/nginx/conf.d \
    # 日志文件地址
    -v $PWD/logs:/var/log/nginx \
    # 静态页面地址
    -v $PWD/html:/usr/share/nginx/html \
    nginx
    

?1.3、配置一个服务映射测试nginx

  • 在 conf.d 文件夹下添加 80.conf 配置文件

    server {
     	listen 80; # 监听的端?
     	
     	server_name localhost; # 域名或ip
     	
     	location / { # 访问路径配置
     		root /usr/share/nginx/html;# 根?录,这个目录已经和html目录进行了数据绑定
     		
     		index index.html; # 默认??,在html目录下创建一个index.html文件即可
     	}
     	
     	error_page 500 502 503 504 /50x.html; # 错误??
     	
    	location = /50x.html {
     		root html;
     	}
    }
    
  • 重启 nginx 的服务,加载当前的服务文件

? 服务启动完毕之后在浏览器中进行数据访问即可完成端口的映射。

2、静态网站的部署

? 静态页面只需要配置在 html 目录下即可,因为已经和容器完成了数据卷绑定,会自动的同步到容器中进行部署。

?2.1、配置虚拟主机

? 虚拟主机,也叫“?站空间”,就是把?台运?在互联?上的物理服务器划分成多个“虚拟”服务器。虚拟主机技术极?的促进了?络技术的应?和普及。同时虚拟主机的租?服务也成了?络时代的?种新型经济形式。

  • 上传静态页面数据

    将需要展示的页面上传至 html 文件夹下面。

  • 编写配置文件 port.conf

    server {
     	listen 81; # 监听的端?
     	server_name localhost; # 域名或ip
     	
     	location / { # 访问路径配置
     		root /usr/share/nginx/index;# 根?录
     		index index.html; # 默认??
     	}
     	
     	error_page 500 502 503 504 /50x.html; # 错误??
     	location = /50x.html {
     		root html;
     	}
     }
     
     server {
     	listen 82; # 监听的端?
     	server_name localhost; # 域名或ip
     	
     	location / { # 访问路径配置
     		root /usr/share/nginx/regist;# 根?录
     		index regist.html; # 默认??
     	}
     	
     	error_page 500 502 503 504 /50x.html; # 错误??
     	location = /50x.html {
     		root html;
     	}
     }
    
  • 访问测试

地址栏输? http://虚拟机的IP地址/:81 可以看到首页面的信息。

地址栏输? http://虚拟机的IP地址/:82 可以看到注册页面的信息。

?2.2、域名绑定

  • 什么是域名

    域名(Domain Name),是由?串?“点”分隔的字符组成的Internet上某?台计算机或计算机组的名称,?于在数据传输时标识计算机的电??位(有时也指地理位置,地理上的域名,指代有?政?主权的?个地?区域)。

    域名是?个IP地址上有“?具” 。域名的?的是便于记忆和沟通的?组服务器的地址 (?站,电?邮件,FTP等)。域名作为?所能及难忘的互联?参与者的名称。域名按域名系统(DNS)的规则流程组成。在DNS中注册的任何名称都是域名。

    域名?于各种?络环境和应?程序特定的命名和寻址?的。通常,域名表示互联?协议(IP)资源,例如?于访问因特?的个?计算机,托管?站的服务器计算机,或?站本身或通过因特?传送的任何其他服务。世界上第?个注册的域名是在 1985年1? 注册的。

  • 域名级别

  • 顶级域名

?是国家顶级域名(national top-level domainnames,简称nTLDs),200多个国家都按照ISO3166国 家代码分配了顶级域名,例如中国是cn,美国是us,?本是jp等; 

?是国际顶级域名(international top-level domain names,简称iTDs),例如表示?商企业的 .Com .Top,表示?络提供商的.net,表示?盈利组织的.org,表示教育的.edu,以及没有限制的中性域名等。但因为?2014年以来新顶级域名的发展,域名争议案件数量增?幅度越来越? 。为加强域名管理,解决 域名资源的紧张,Internet协会、Internet分址机构及世界知识产权组织(WIPO)等国际组织经过?泛 协商, 在原来三个国际通?顶级域名:(com)的基础上,新增加了 `7`个国际通?顶级域名:**firm(公 司企业)**、**store(销售公司或企业)**、**Web(突出WWW活动的单位)**、**arts(突出?化、娱乐活动的 单位)**、**rec (突出消遣、娱乐活动的单位)**、**info(提供信息服务的单位)**、**nom(个?)**,并在世界范围 内选择新的注册机构来受理域名注册申请。 
  • ?级域名
?级域名是指顶级域名之下的域名,简单点来说就是加了一个分支, 例如:map.baidu.com 
  • 三级域名
三级域名?字?( A~Z,a~z,??写等)、数字(0~9)和连接符(-)组成, 各级域名之间?实点(.)连接,三级域名的?度不能超过20个字符。如?特殊原因,建议采?申请?的英?名(或者缩 写)或者汉语拼?名 (或者缩写) 作为三级域名,以保持域名的清晰性和简洁性。 

简单说就是在二级域名的基础上再加一个分支进入, 例如: item.map.baidu.com 
  • 域名与IP绑定

?个域名对应?个 ip 地址,?个 ip 地址可以被多个域名绑定。

?2.3、本地域名解析

? 本地测试可以修改 hosts ?件(C:\Windows\System32\drivers\etc) 可以配置域名和 ip 的映射关系,如果 hosts ?件中配置了域名和 ip 的对应关系,不需要? dns 服务器。

?在 hosts 文件中添加域名绑定信息,访问下面两个域名就会解析到虚拟机的IP地址,从而找到相应的服务映射。

192.168.188.128 www.beordie.com

192.168.188.128 www.yishun.com

  • 修改配置文件 port.conf

    server {
     	listen 81; # 监听的端?
     	server_name www.beordie.com; # 绑定域名
     	..........
     }
     
     server {
     	listen 82; # 监听的端?
     	server_name www.yishun.com; # 绑定域名
     	..........
     }
    

    访问域名即可访问到具体的服务

3、 反向代理和负载均衡

?3.1、反向代理

  • 什么是反向代理

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

  • 图解正向代理和反向代理

    • 正向代理 是针对于客户端的

在这里插入图片描述

  • 反向代理 是针对服务器的

在这里插入图片描述

?3.2、配置 tomcat

?在 docker 中完成tomcat容器的配置

  • 搜索tomcat镜像
docker search tomcat
  • 拉取tomcat镜像

    docker pull tomcat
    
  • 创建容器,设置端口映射、目录映射

    # 在/root?录下创建tomcat?录?于存储tomcat数据信息
    mkdir ~/tomcat
    cd ~/tomcat
    
    docker run -id --name=c_tomcat \
    #  端口映射
    -p 8080:8080 \
    # 数据卷绑定
    -v $PWD:/usr/local/tomcat/webapps \
    tomcat
    

?3.3、配置反向代理

?在 nginx 的配置文件夹下面创建 tomcat.conf 配置文件并填充信息。

  • tomcat.conf

    upstream tomcat-beordie{
     	server 192.168.188.128:8080;
     }
     
     server {
     	listen 80; # 监听的端?
     	server_name www.beordie.com; # 域名或ip
    	 location / { # 访问路径配置
     		# root index;# 根?录
     		proxy_pass http://tomcat-beordie;
     		index index.html index.htm; # 默认??
     	}
     }
    

    当浏览器访问 www.beordie.com 域名时会被解析到虚拟机,然后又被代理到 192.168.188.128:8080 也就是tomcat的启动端口,从而实现反向代理。

?3.4、 负载均衡

  • 什么是负载均衡

    负载均衡是建?在现有?络结构之上,它提供了?种廉价有效透明的?法扩展?络设备和服务器的带宽、 增加吞吐量、加强?络数据处理能?、提??络的灵活性和可?性。

    负载均衡,英?名称为Load Balance,其意思就是分摊到多个操作单元上进?执?,例如Web服务器、 FTP服务器、企业关键应?服务器和其它关键任务服务器等,从?共同完成?作任务。

  • 配置负载均衡

    nginx 配置负载均衡很简单,只需要将要均衡的地址通过分号隔开的形式写在一起就可以了,会自动完成轮询的负载均衡。如果需要将某台主机的访问加大,可在后面添加 weight=2 来增大访问的频率。

     upstream tomcat-beordie {
    	server 192.168.220.12:8080;
     	server 192.168.220.12:8081 eight=2;
     	server 192.168.220.12:8082;
     }
    

例如Web服务器、 FTP服务器、企业关键应?服务器和其它关键任务服务器等,从?共同完成?作任务。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-22 15:02:37  更:2021-09-22 15:02:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:29:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码