nginx安装文档
一. 文档介绍
- 文档内容目前并不全面,更多内容会在后续更新
- 文档nginx部分构成 ---- 基础配置篇 和 场景应用篇
- 基础配置篇:nginx 等相关介质准备及环境配置
- 场景应用篇:nginx 在生产中常见的使用方法
二. nginx 简介
1. nginx 简介
-
Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,特点是占有内存少,并发能力强。
-
Nginx 即可作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,如 php。但是不支持 java。Java 程序只能通过与 tomcat 配合完成
2. 服务器相关概念介绍
1.1 正向代理
说明:当客户端无法直接访问网站时,可以使符合条件的代理服务器代替我们 发送请求 和 接收内容。它还有一个好处是隐藏了客户端的真实ip
1.2 示意图
2. 反向代理
2.1 说明:用户对服务器提供的服务是无感知的,客户端将请求发送给代理服务器,代理服务器将请求发送给后台某一台服务器处理。他还有一个好处是隐藏了服务器的真实ip
2.2 示意图
基础安装篇
一. 环境准备
系统配置
配置 | 参数 |
---|---|
系统 | centos7.6 |
位数 | 64 |
cpu个数 | 4 |
1. 停用 selinux
说明:selinux 是 redhat/centos 中提供访问控制安全策略的机制,若开启可能会影响到服务器的使用,建议关闭
1. 查看 selinux 状态
getenforce
若显示 为 Enforcing
,则进行关闭
**2. ** 关闭 selinux
2.1 打开文件 /etc/
vi /etc/selinux/config
2.2 修改配置
说明:将 SELINUX=enforcing 修改为 SELINUX=disabled
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing #将此处修改为 SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
3. 重启计算机,使配置生效
重启命令
init 6
**4. ** 查看 selinux 状态
getenforce
若为 Disabled 即已生效
2. 创建中间件用户
说明:中间件用户用来管理 nginx 服务器
1. 创建 middleware 组
groupadd -g 402 middleware
2. 创建 middleware 用户
useradd -u 402 -g middleware -d /middleware middleware
3. 修改 middleare 密码
passwd middleware
3. 赋予中间件用户 sudo 权限
1. 赋予文件可写权限
chmod +w /etc/sudoers
2. 打开文件
vi /etc/sudoers
3. 在只读模式中输入 /root 查找关键字
/root
4. 找到代码
root ALL=(ALL) ALL
5. 在它下方加入以下代码,然后保存退出
was ALL=(ALL) ALL
6. 恢复文件默认权限
chmod -w /etc/sudoers
4. 关闭防火墙
说明:为了方便,直接关闭防火墙
**1. ** 查看防火墙状态
systemctl status firewalld.service
若 Active 为 active ,则为开启状态
2. 关闭防火墙(重启后失效)
systemctl stop firewalld.service
3. 永久关闭防火墙(重启后生效)
systemctl disable firewalld.service
二. 素材准备
注意: 从此步开始均用 middleware 用户操作
1. 下载 nginx
1. 创建 software 目录,用来存放素材
mkdir ~/software
**2. ** 安装 wget , 用于下载 nginx 使用
sudo yum install wget -y
3. 将 nginx 下载到 ~/software 中
wget -P ~/software/ https://nginx.org/download/nginx-1.21.1.tar.gz
2. 下载依赖
**1. ** 安装
wget -P /middleware/software/ http://zlib.net/zlib-1.2.11.tar.gz
wget -P /middleware/software/ https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
wget -P /middleware/software/ https://www.openssl.org/source/openssl-1.0.2s.tar.gz
wget -P /middleware/software/ http://nginx.org/download/nginx-1.16.1.tar.gz
2. 依赖包解释
zlib
库 : gzip 模块所需
pcre
库 : rewrite 模块所需
openssl
库: ssl 功能所需
gcc
编译所需
3. 官网下载最新依赖
说明:yum 源中若没有上述库或者库版本不符,可到官网自行下载
prce
: http://www.pcre.org/
openssl
:http://www.openssl.org/source/
zlib
:http://www.zlib.net/
三. nginx 安装
1.介质解压于查看
1. 将压缩包解压到指定目录
tar -xvf ~/software/nginx-1.16.1.tar.gz
tar -xvf ~/software/openssl-1.0.2s.tar.gz
tar -xvf ~/software/pcre-8.43.tar.gz
tar -xvf ~/software/zlib-1.2.11.tar.gz
2. 查看解压后的目录
说明:此命令只显示当文件夹中的目录文件
find /middleware/software/ -maxdepth 1 -type d | awk '{ if (NR > 1){print $1}}'
3. 显示
/middleware/software/nginx-1.16.1
/middleware/software/openssl-1.0.2s
/middleware/software/pcre-8.43
/middleware/software/zlib-1.2.11
2. 配置编译环境
1. 进入 /middleware/software/nginx-1.16.1 目录
cd /middleware/software/nginx-1.16.1
2. 配置编译环境
./configure
--prefix=/middleware/nginx
--with-pcre=/middleware/software/pcre-8.43/
--with-zlib=/middleware/software/zlib-1.2.11/
--with-openssl=/middleware/software/openssl-1.0.2s/
--user=middleware
--group=middleware
--with-file-aio
--with-http_v2_module
--with-http_ssl_module
--with-http_realip_module
--with-http_sub_module
--with-http_gzip_static_module
--with-http_stub_status_module
3. 参数说明
4. 其他参数(了解)
3. 编译和安装
1. 编译后安装
make && make install
4. 修改 nginx 虚拟主机 端口号
说明:虚拟主机 概念后续会讲解,暂且将它认为是 nginx 启动服务后的默认端口号(即80端口)。修改原因是非root 用户没有权限管理 1024 以下的端口号
1. 打开 nginx 配置文件
vim /middleware/nginx/conf/nginx.conf
2. 将端口改为 8080
5. 启动 nginx 服务
1. 启动命令
/middleware/nginx/sbin/nginx
2. 查看 nginx 进程
ps -ef | grep nginx
3. 启动成功显示
middlew+ 59265 1 0 14:10 ? 00:00:00 nginx: master process /middleware/nginx/sbin/nginx
middlew+ 59266 59265 0 14:10 ? 00:00:00 nginx: worker process
4. 访问 nginx 服务器
地址:ip:8080
5. nginx 首页显示
场景应用篇
一. 搭建 nginx 文件服务器
1.设置服务器访问用户及密码
说明:为了增加服务器的安全性,我们给其设置了密码。设置密码需要借助第三方 **httpd-tools ** 工具
1. 安装 httpd-tools
sudo yum install -y httpd-tools
2. 创建存放密码文件目录
mkdir -p /middleware/conf/nginx_passwd
3. 生成用户 middleware 的密码文件
htpasswd -c /middleware/conf/nginx_passwd/passwd.db middleware
注意:此步会提示输入密码,此密码即为文件服务器登录密码
2. 文件配置
1. 打开 /middleware/nginx/conf/nginx.conf 文件
vim /middleware/nginx/conf/nginx.conf
2. 重载配置文件
说明:nginx有 “热” 的概念。简单理解为 nginx可以在不停止服务的情况下重载配置文件,所以此处直接重载即可
重载命令
/middleware/nginx/sbin/nginx -s reload
3. 访问文件服务器
1. 服务器地址
ip:8080
2. 服务器页面显示
说明:访问服务器时会要求输入用户密码,即之前所设置的
二. nginx反向代理
1. 反向代理实现过程
1. 反向代理示意图
2. 图例说明
我们用 浏览器 访问 nginx代理服务器 ,让他替我们向 tomcat服务器 发送请求,并将收到的内容回复给我们
2. 服务器准备
服务器ip | 服务器类型 | 端口 |
---|---|---|
192.168.163.181 | nginx 反向代理服务器 | 8080 |
192.168.163.171 | tomcat 服务器 | 8081 |
3. tomcat 安装
详情见 tomcat 安装文档
4. nginx 配置
1. 打开 nginx 配置文件
vim /middleware/nginx/conf/nginx.conf
2. 修改配置文件
3. 重载配置文件
/middleware/nginx/sbin/nginx -s reload
4. 访问 nginx 服务器
nginx服务器地址:http://192.168.163.181:8080
5. 返回页面
三. 负载均衡配置
1. 负载均衡实现
1. 负载均衡示意图
2. 图例说明
当浏览器 向 nginx服务器 发送请求时,nginx服务器 会根据 负载均衡 策略 将请求分给 tomcat1 或 tomcat2 ,并将接收到的消息返回给浏览器
2. 服务器准备
服务器ip | 服务器类型 | 端口 |
---|---|---|
192.168.163.181 | nginx 反向代理服务器 | 8080 |
192.168.163.172 | tomcat1 | 8081 |
192.168.163.172 | tomcat2 | 8082 |
3. tomcat安装
在 /middleware 下安装两个tomcat应用,安装目录分别命名为 tomcat1 和 tomcat2,端口分别为 8081 和 8082
4. nginx 配置
1. 配置文件内容如下
2. 验证是否生效
轮流停止 tomcat 服务,然后访问 nginx 地址即可验证