1.Nginx简介和安装部署
1.1.什么是Nginx
- 高性能的[HTTP]和反向代理的web服务器,用c语言编写,高性能支持单机千万级连接,强大的第三方库支持,负载均衡、静态文件服务器等。
1.2.Nginx的用途
- 搭建前端静态资源服务器、文件服务器
- 负载均衡Upstream配置实战、后端节点高可用性探测、全局异常兜底数据配置
- Nginx封禁恶意IP、配置跨域、location和rewrite实战
- Websocket配置、后端业务数据缓存前置、静态资源压缩
- 阿里云ESC部署配置HTTPS证书
- Nginx整合Openresty开发内网访问限制、文件资源下载限速实现原理
- LVS+KeepAlived高可用配置
1.3.正向代理服务器
- 客户端和目标服务器之间的服务器,客户端想代理发送一个请求指定目标服务器,然后代理向目标服务器请求并获得内容,并返回给客户端,平时说的代理服务器一般是正向代理服务器。
- 核心:用户知道自己要访问的目标服务器
- 场景:跳板机,访问原来无妨访问的网站
1.4.反向代理服务器
- 客户端和目标服务器之间的服务器,客户端向代理发送一个请求,然后代理向目标服务器请求并获得内容,并返回给客户端。反向代理隐藏了真是的服务器。
- 核心:客户端不知道要访问的目标服务器是哪台服务器,代理会根据一定的策略选择一个真是的服务器进行请求。
- 场景:域名映射
1.5.nginx安装部署
- 安装依赖
- yum -y install gcc zlib zlib-devel pcre-devel opensslopenssl-devel
- 解压nginx.tar.gz压缩包
- tar -xvf nginx-1.18.0.tar.gz
- 执行命令
- ./configure --prefix=/usr/local/nginx && make && make install
- 阿里云开放网络安全组或者虚拟机开发80端口firewall-cmd --permanent --add-port=80/tcp
- 启动nginx:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
1.6.线上访问服务器应用流程解析
- 一个http请求基本流程
- 客户端通过发起域名资源请求->DNS解析获取IP->寻找服务器获取资源
- 域名和IP的关系,DNS作用
- DNS:Domain Name Server域名服务器,域名虽然便于人们记忆,但网络中的计算机只能通过IP相互通信,他们之间的转换共做成为域名解析,域名解析需要由专门的与专门解析服务器完成,DNS就是进行域名解析的服务器。
- 什么是a记录和cname
- a记录
- 用户可以在此设置域名并指向到自己的目标主机地址上,从而实现通过域名找到服务器(lixiang.com->192.168.10.103)
- cname
- 别名指向,可以为一个主机设置别名。比如设置lixiang123.com,用来指向lixiang.com那么以后就可以用lixiang123.com代替lixiang.com来访问,相当于多了一条通道。
- a记录
1.7.本地虚拟机配置宿主机域名映射
- C:\Windows\System32\drivers\etc
- 修改hosts文件
2.Nginx核心基础知识
2.1.Nginx目录结构
(1)源码安装指定安装路径
- /usr/local/nginx
(2)目录核心介绍
conf #所有配置文件的目录
nginx.conf #默认的主要配置文件
nginx.conf.default #默认模板
html #这是编译安装时Nginx的默认站点目录
50x.html #错误页面
index.html #默认首页
logs #nginx默认的日志路径,包括错误日志以及访问日志
error.log #错误日志
nginx.pid #nginx启动后的进程id
access.log #nginx访问日志
sbin #nginx命令目录
nginx #启动命令
(3)常见命令
./nginx #默认配置文件启动
./nginx -s reload #重启,加载默认的配置文件,conf/nginx.conf
./nginx -s stop #停止nginx
./nginx -c /usr/local/nginx/conf/nginx.conf #指定配置文件启动
#nginx进程有master process和worker process,关闭master进程即可,其他都被关掉
2.2.Nginx核心配置文件
- 全局配置
- server主机配置
- location(URL匹配特定位置的设置)
#每个配置项有配置指令和指令参数够成 nginx配置文件全部用的相对路径
#user nobody; #指定nginx用户组
worker_processes 1; #指定worker process进程的数量
#error_log logs/error.log; #错误日志存放的路径
#error_log logs/error.log notice; #告警日志
#error_log logs/rttor/log info; #平常日志
#pid logs/nginx.pid #nginx进程的启动PID
#事件模块指令,用来指定Nginx的IO模型,Nginx支持的所有select、poll、kqueue、epoll等
#不同的是epoll用在linux平台上,而kqueue用在BSD系统上
events{
use epoll;
#指定每个worker进程的最大连接数,作为服务器来说,最大连接数为worker_connections * worker_processes
#作为反向代理来说,最大连接数为worker_connections * worker_processes / 2
worker_connections 1024;
}
#HTTP模块
http{
#资源的媒体类型
include 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日志,main 日志定义的格式
#access_log logs/access/log main;
#是否开启高效传输模式 on开启,off关闭
sendfile on;
#减少网络报文段的数量
#tcp_nopush on;
#客户端连接保持活动的超时时间,超过这个时间服务器会自动关闭
keepalive_timeout 65;
#是否开启压缩
#gzip on;
#虚拟主机配置
server {
#虚拟主机的服务端口
listen 80;
#用来指定IP地址和域名,可以有多个用空格分开
server_name localhost;
#charset koi8-r;
#access_log日志,main 日志定义的格式
#access_log logs/host.access.log main;
#URL地址配置
location /{
#服务默认启动目录
root html;
#默认访问文件,按照顺序找
index index.html;
}
#URL地址配置
location ~ \.php${
#反向代理的地址
proxy_pass http://127.0.0.1;
}
}
server {
....
}
}
2.3.Nginx搭建前端静态服务器
(1)什么是虚拟主机
- 指在一台物理主机上划分出多个磁盘空间,每个磁盘空间都是有一个虚拟主机,每台虚拟主机都可以对外提供Web服务,并且互不干扰,类似虚拟机
- 利用虚拟主机把多个不同域名的网站部署在同一台服务器上,节省了服务器硬件成本和相关的维护费用
(2)Nginx虚拟主机配置文章来源:https://www.toymoban.com/news/detail-429301.html
#use nobody;
worker_processes 1;
events{
use epoll;
worker_connections 1024;
}
http{
server{
listen 80; #监听的端口
server_name www.nginx.com #请求的域名
location /{
root /usr/local/software/nginx/html #目录
index index.html #跳转的页面
}
}
server{
listen 80;
server_name www.lixiang.com #请求的域名
location /{
root /usr/local/software/nginx/html #目录
index lixiang.html
}
}
}
重启nginx : ./nginx -s reload文章来源地址https://www.toymoban.com/news/detail-429301.html
到了这里,关于超全Nginx反向代理服务器原理+实战篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!