Nginx笔记

仅对学习的Nginx知识点记录总结,方便回顾。

必备知识

C10k问题

由于互联网发展,用户增长所带来的高并发问题,指一个单及设备同时处理一万个客户端的问题。

Nginx的概念及作用

概念

Nginx是一个高性能的HTTP反向代理WEB服务器,特点是占有内存少,并发能力强,中国大陆有很多使用Nginx网站:百度、京东、新浪、网易、腾讯、淘宝等。

WEB服务器:
又称网页服务器(Web Server),主要供嗯那个是为用户提供网上信息浏览服务。
HTTP:
超文本传输协议,一种广泛使用的网络协议,约定了数据的封装格式,传输方式,响应方式等等。

作用

作为静态网页的web服务器,支持CGI协议的动态语言,如perl,php等,但不支持java,只能通过tomcat完成Java程序。,注重效率,能经受高负载,最大可以承受50000个并发连接数

优点

1、速度快,并发更高。单次请求何高并发请求环境下要比其它Web服务器响应速度要快,主要因为其采用多进程何I/O多路复用(epoll)的底层实现。
2、配置简单。扩展性强。Nginx由多模块组成,模块使用可通过配置文件配置添加,也可以开发服务于自己业务的定制模块。
3、高可靠性。采用多线程模式运行,其中有一个master主线程和多个worker进程(master管理,worker被管理),worker进程的数量可以手动设置,每个worker进程之间相互独立,可以快速切换worker,及时修补错误。
4、热部署。可以7*24小时无间断提供服务,在不停止的情况下,升级文件,更新配置,更换日志文件等。
5、成本低、BSD开源许可证。

反向代理

正向代理:
客户端无法直接访问服务端,需要一台中间服务器(可以访问到目标服务器)做代理从目标服务器获取数据并返回。
作用:
1、突破访问限制,访问国外网站。
2、提高访问速度。
3、隐藏IP。

反向代理:
使用代理服务器接受客户端请求,将从服务器获取的结果返回给请求的链接的客户端。
作用:
1、负载均衡。
2、提高访问速度,对一些静态内容,或大量访问的动态内容有缓存服务,提高访问速度·。
3、可以隐藏服务端,在服务端与客户端之间架设防火墙,排查恶意软件,网络攻击,加密等等,保护服务端安全。

区别:
1、正向代理为客户端代理,反向代理为服务端代理,前者是帮助客户端访问其无法访问的资源,后者是帮助服务器做负载均衡,安全防护等。
2、正向代理一般有客户端架设,反向代理由服务端架设。
3、正向代理,服务器不知道自己的真正客户端是谁,反向代理客户端不知道真正的服务端是谁。
4、作用和目标不同。正向代理主要用来解决访问限制,反向代理主要做负载均衡,安全防护,二者聚能提高访问速度。

负载均衡

定义:负载均衡就是分担到多个操作单元上进行操作,共同完成工作任务。
问题引入:一般的架构模式是客户端发送请求到服务器,再由服务器处理请求,必要时会与数据库发生交互(查询,修改,删除等),服务器处理完毕时,将结果返回给客户端。
上述架构模式在并发量较低时采用比较合适,成本较低,但在高并发场景下使用,可能会导致服务器崩溃,这是由于服务器性能瓶颈导致的。
解决方案:
1、升级服务器配置,加大内存,更换更好的CPU等等从物理方面提升服务器性能,但是随着硬件的提升,花费的成本也会越来越高。
2、(负载均衡)单个服务器无法解决,可以增加服务器数量,将原先集中于单个服务器上的请求分发到多个服务器上,将负载分发到不同较为廉价的服务器上,某种意义上还能够节约成本。

动静分离

主要是为了加快网站解析速度,可以将动态页面和静态页面有不同服务器解析,加快解析速度,降低单个服务器压力。

静态资源:亲段固定页面,包括HTML、CSS、JS、图片,无需数据库程序处理,直接就能显示的页面。访问效率较高。
动态资源:需要程序处理或者从数据库读取数据,能够根据不同条件在页面显示不同数据,如jsp,servlet。访问效率较低。
动静分离

Nginx安装,常用命令和配置文件

Nginx核心组成
nginx二进制可执行文件
nginx.conf配置文件
error.log错误访问日志记录
acess.log访问日志记录
安装之前:
1、配置一台内核为2.6版本以上的Centos虚拟机,确保能够联网:

ping www.baidu.com  //随便ping一个地址,能够连通即可。

2、关闭防火墙

//关闭防火墙(临时关闭,重启打开)
systemctl stop firewalld
//永久关闭(系统重启不会打开)
systemctl disable firewalld
//查看防火墙状态
systemctl status firewalld
如果出现 Active: inactive (dead)则防火墙已经关闭

3、停用selinux

sestatus //查看状态 diable为停用状态
//如果没有停用使用以下命令将SELINUX=disabled,保存并重启后生效。
vim /etc/selinux/config 

安装

简单源码安装

安装之前需要准备:
1、GCC编译器

//查看gcc编译器是否安装或是否安装成功
gcc --version 
//安装gcc编译器
yum install -y gcc
//如果不是管理员权限下可能会提示切换为管理员权限
sudo su

2、PCRE
兼容正则表达式库

//安装
yum install -y pcre pcre-devel
//检查是否安装成功
rpm -qa pcre pcre-devel

3、zlib

//安装
yum install -y zlib zlib-devel
//检查是否安装成功
rpm -qa zlib zlib-devel

4、OpenSSL
OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包进行通信,并且避免被窃听。
SSL:Secure Sockets Layer安全套接协议,保证两应用之间通信的保密性和可靠性,提供安全网页是需要用到OpenSSL库。

//安装
yum install -y openssl openssl-devel
//检查是否安装成功
rpm -qa openssl openssl-devel

以上步骤可通过一条命令进行全部安装

//安装
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
//是否安装成功
rpm -qa gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

正式下载

1、进入官网复制需要安装版本的链接地址,然后使用wget命令进行下载,也可以先下载到本地,然后使用ftp工具上传到服务器。

wget http://nginx.org/download/nginx-1.20.2.tar.gz

2、管理下载的资源

//创建文件夹
mkdir -p nginx/core
//将下载的资源移动到创建的文件夹
mv nginx-1.20.2.tar.gz nginx/core

3、解压缩

//进入到资源文件夹下
cd nginx/core
//解压
tar -zxf nginx-1.20.2.tar.gz

4、进入到解压后的资源文件中,执行configure

 cd nginx-1.20.2
 //执行
 ./configure

5、编译和安装

make && make install

安装位置
usr/local/nginx

cd /usr/local/nginx
//进入到sbin
cd sbin
//启动nginx
./nginx
//查看ip
ifconfig

浏览器输入ip后出现此界面后安装成功:
在这里插入图片描述
yum安装
1、安装必备组件

sudo yum install yum-utils

2、要设置 yum 存储库,请创建以以下内容命名的文件:/etc/yum.repos.d/nginx.repo

vim /etc/yum.repos.d/nginx.repo
在创建的空文件里粘贴一下文本:
#稳定版
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
#主线版
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
创建成功后默认下载的是稳定版,如果要下载主线版,则需要执行以下命令:
sudo yum-config-manager --enable nginx-mainline

3、 直接安装:

sudo yum install -y nginx

4、启动nginx

//查看nginx相关文件
whereis nginx
//之后出现以下结果:
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz
//到/usr/sbin目录下
cd /usr/sbin
//执行以下命令,启动nginx
./nginx

在浏览器输入对应ip出现一下页面说明安装成功:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值