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 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux学习记录——nginx服务 -> 正文阅读

[系统运维]Linux学习记录——nginx服务

nginx服务

官方网站:https://nginx.org/en/download.html
在这里插入图片描述
Nginx: 就是一个http服务器。c语言编写的高性能http服务反向代理服务器。官方测试能够支撑5万并发连接,并且cpu、内存等消耗低,运行稳定。
正向代理
比如我们国内访问谷歌,直接访问访问不到,代理服务器能够访问谷歌。
客户端将请求发到代理服器,由代理去谷歌取到返回数据,再返回给客户端
此时代理服务器对外就表现为一个客户端
在这里插入图片描述正向代理的用途:
(1)访问原来无法访问的资源,如google
(2)代理可以记录用户访问记录(上网行为管理),并对外隐藏用户信息
用户可以知道Web服务的数据库等系统的IP地址和端口号等敏感息。

反向代理
反向代理(Reverse Proxy) 代理服务器接受外网的连接请求,然后将请求转发给内部服务器,并将内部服务器返回的结果发送给外网请求连接的客户端
此时代理服务器对外就表现为一个服务器
在这里插入图片描述反向代理的作用:
(1)保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网
(2)负载均衡,通过反向代理服务器来优化网站的负载

总结: 正向代理反向代理的区别在于代理的对象不一样,正向代理代理的对象是客户端,反向代理代理的对象是服务端。

Nginx应用场景:

1.http服务器:可单独提供服务即`静态`服务器
2.虚拟主机:实现一台主机虚拟多个网站,可以基于端口、域名实现
3.反向代理、负载均衡

nginx搭建

一. gcc 安装

安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
yum install gcc-c++

二. PCRE pcre-devel 安装

PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:
yum install -y pcre pcre-devel

三. zlib 安装

zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
yum install -y zlib zlib-devel

四. OpenSSL 安装

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
yum install -y openssl openssl-devel

下载并解压

wget http://nginx.org/download/nginx-1.19.5.tar.gz
tar -zxvf nginx-1.19.5.tar.gz

编译

cd nginx-nginx-1.19.5
./configure
make
make install

#查看nginx路径可以使用命令 whereis nginx查看位置 结果为 /usr/local/nginx
cd /usr/local/nginx/sbin/#进入启动路径
#常用启动重启方式:

./nginx         启动
./nginx -s stop   停止
./nginx -s quit   退出
./nginx -s reload  重启

启动时,提示以下内容
在这里插入图片描述
解决办法:
根据Nginx配置文件查看配置的端口(本文中使用的是80端口),然后根据端口查看端口占用情况

[root@xyw-cyck-cms-3 ~]# netstat -ntlp|grep 80  
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      7043/nginx: worker

使用kill命令杀死占用进程,之后重新启动Nginx

kill -9 7043

nginx基础配置

实验一:基于端口的虚拟主机搭建

mkdir /usr/local/nginx/www  #新建8001端口站点目录,可以使用其他目录
echo 'the website port is 8001' > /usr/local/nginx/www/index.html

####  打开配置文件将下面内容写进34行左右空白处
server{
	listen 8001;
	server_name localhost;
	location / {
		root	www;
		index	index.html index.htm;
		}	
	}
###  进入/usr/local/nginx/sbin/下,重新加载配置文件
./nginx -s reload

然后使用浏览器访问即可

Nginx代理

实验二:反向代理转发应用配置:

/usr/local/nginx/conf/nginx.conf  #nginx默认配置文件
#####修改前注意备份配置文件#####
配置文件讲解如下:
server {
	listen 8088;
	location / {	#location表示匹配用户访问的资源,并作进一步转交和处理,可用正则表达式匹配
	proxy_pass http://$http_host$request_uri;  #proxy_pass表示需要代理的地址
			}
	}



具体配置例如:
server { 
	listen       8080;
	server_name  localhost;
	location / {
		proxy_pass http://192.168.50.154:80; 
				}		
			}


####解决图片代理不过来等问题###
server {
	listen       8080;
	server_name  192.168.50.33;
	location ~.* {
		proxy_pass http://192.168.50.154:80;
		proxy_set_header Host $http_host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
				}
		}

负载均衡

负载均衡其意思就是将负载进行平衡
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
nginx提供的负载均衡策略有2种:内置策略扩展策略。内置策略为轮询加权轮询Ip hash。扩展策略(根据自己需求改)
Nginx 根据请求次数,将每个请求均匀分配到每台服务器

IP Hash
绑定处理请求的服务器。第一次请求时,根据该客户端的IP算出一个HASH值,将请求分配到集群中的某一台服务器上。后面该客户端的所有请求,都将通过HASH算法,找到之前处理这台客户端请求的服务器,然后将请求交给它来处理。
在这里插入图片描述
负载均衡应用案例:
网站动静分离:态页面和态页面交给不同的服务器来解析,加快解析速度,降低单个服务器的压力。
轮询

http{
	upstream ng{	                 #连接池,ng是连接池名称,可以随意修改
		server 192.168.239.134; 
		server 192.168.239.128; 
	}
	server{
		listen       8080;
        server_name  localhost;
		location / {
			proxy_pass http://ng;	#指定代理连接池,ng
		}
	}
}

权重

http{
	upstream ng{	                #连接池,ng是连接池名称,可以随意修改
		server 192.168.239.134 weight=2;	#2/3次
		server 192.168.239.128 weight=1;	#1/3次 
	}
	server{
		listen       8080;
        server_name  localhost;
		location / {
			proxy_pass http://ng;	#指定代理连接池,ng
		}
	}
}
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-31 15:52:22  更:2021-08-31 15:53:20 
 
开发: 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 11:38:14-

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