[toc]

集群架构图

image-20221128211838899

Nginx概述

简介

  • nginx官网
  • nginx介绍
    • Nginx是一个开源且高性能、可靠的Http Web服务、代理服务。
    • 开源: 直接获取源代码
    • 高性能: 支持海量并发
    • 可靠: 服务稳定

nginx的应用场景

image-20230616191155833

nginx快速安装

nginx的三种安装方式

  1. 源码编译=>Nginx (1.版本随意 2.安装复杂 3.升级繁琐 4.规范 5.便于管理)
  2. epel仓库=>Nginx (1.版本较低 2.安装简单 3.配置不易读)
  3. 官方仓库=>Nginx (1.版本较新 2.安装简单 3.配置易读)

源码安装nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 获取nginx源码包
mkdir /source_code
cd /source_code/
wget https://nginx.org/download/nginx-1.20.2.tar.gz

# 安装依赖
yum install -y pcre-devel zlib-devel

# 解压
tar -xf nginx-1.20.2.tar.gz

#生成
./configure --prefix=/app/nginx-1.20.1

# 编译并安装
make && make install

# 创建软连接
使用ln -s创建软连接:
[root@localhost /opt]# ln -s /app/nginx-1.20.1/ /app/nginx

# 添加nginx命令的环境变量
vim /etc/profile
PATH="$PATH:/app/nginx/sbin"

# 加载环境变量
source /etc/profile
echo $PATH

# 检测配置文件
nginx -t

# 启动服务
nginx

# 检测nginx进程和端口
ps -ef | grep [n]ginx
netstat -lntup | grep nginx

# 打开浏览器输入运行nginx服务的设备IP地址

image-20221209170253954

epel源安装nginx

1
2
3
4
5
6
7
8
9
10
11
# 运行安装命令
yum install -y nginx

# 启动服务
systeamctl start nginx

# 检测nginx进程和端口
ps -ef | grep [n]ginx
netstat -lntup | grep nginx

# 打开浏览器输入运行nginx服务的设备IP地址

nginx官方源安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 创建nginx源
cd /etc/yum.repos.d
vim 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
yum install -y nginx

# 查看nginx版本
nginx -v

# 启动nginx
systemctl start nginx

# 停止nginx
systemctl stop nginx
nginx -s

# 重启nginx
systemctl restart nginx

# 重新加载ngxin
systemctl reload nginx

# 查看nginx编译参数
nginx -V

nginx的相关文件及功能介绍

nginx的主配置文件

路径 类型 作用
/etc/nginx/nginx.conf 配置文件 nginx的主配置文件
/etc/nginx/conf.d/default.conf 配置文件 默认网站配置文件

nginx相关代理配置文件

路径 类型 作用
/etc/nginx/fastcgi_params 配置文件 fastcgi代理配置文件
/etc/nginx/scgi_params 配置文件 scgi代理配置文件
/etc/nginx/uwsgi_params 配置文件 uwsgi代理配置文件

nginx编码相关的配置文件

路径 类型 作用
/etc/nginx/win-utf 配置文件 nginx编码转换映射配置文件
/etc/nginx/koi-utf 配置文件 nginx编码转换映射配置文件
/etc/nginx/koi-win 配置文件 nginx编码转换映射配置文件
/etc/nginx/mime.types 配置文件 Content-Type与扩展名

nginx管理相关的配置文件

路径 类型 作用
/usr/sbin/nginx 命令 nginx命令行管理终端命令
/usr/sbin/nginx-debug 命令 nginx命令行与终端调试命令

ngxin日志相关的文件

路径 类型 作用
/var/log/nginx 目录 nginx默认存放日志目录
/etc/logrotate.d/nginx 配置文件 nginx的默认日志切割

nginx主配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 进入nginx主配置文件
vim /etc/nginx/nginx.conf
-----------------------------------核心模块-------------------------------------------
# 服务启动的用户
user nginx;
# worker进程(子进程),根据CPU核心数
worker_processes auto;
# 错误日志,以及存放日志的级别
error_log /var/log/nginx/error.log notice;
# pid文件存放的路径
pid /var/run/nginx.pid;
------------------------事件驱动模块--------------------------------------------------
events {
# 每个worker进程的最大连接数
worker_connections 1024;
}
------------------------HTTP网站配置--------------------------------------------------
http {
# 默认nginx支持的文件类型
include /etc/nginx/mime.types; index.html
# 默认需要下载的类型
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;
# 配置文件的格式(严格要求.conf结尾)
include /etc/nginx/conf.d/*.conf;
}

nginx的默认网站配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 进入nginx默认网站配置文件
vim /etc/nginx/conf.d/default.conf


server {
listen 80; # 监听端口, 默认80
server_name niubi.com; # 提供的域名
access_log access.log; # 该网站的访问日志
#控制网站访问路径
location / {
root /usr/share/nginx/html; # 存放网站源代码的位置
index index.html index.htm; # 默认返回网站的文件
}
}
...
#第二个虚拟主机配置
'server' {
...
}

使用nginx服务搭建一个小游戏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 编辑配置文件
cd /etc/nginx/conf.d
vim game.conf

server {
listen 80;
server_name game.chenlin.com;

location / {
root /code;
index index.html;
}
}

# 创建一个站点目录
mkdir /code

# 进入站点目录
cd /code

# 部署代码

# hosts本地物理机DNS解析
C:\Windows\System32\drivers\etc\hosts