一、基本概念
1.什么是Nginx
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理server。其特点是占有内存少。并发能力强,其并发能力确实在同类型的网页server中表现较好。
- http服务器
Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)与客户机浏览器进行信息交流,这就是人们常把它们称为HTTP服务器的原因。
- 代理服务器
通常是指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端。
- 反向代理
客户端向反向代理的命名空间中的内容发送普通请求,接着反向代理将推断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。
- 正向代理
正向代理是一个位于客户端和原始服务器之间的代理服务器,为了从原始服务器取得内容,客户端向代理服务器发送一个请求并指定目标原始服务器。然后代理服务器向原始服务器转交请求并将获得的内容返回给客户端。
- 反向代理vs正向代理
从安全性来讲,正向代理同意客户端通过它访问随意站点而且隐藏客户端自身,因此你必须採取安全措施以确保仅为经过授权的客户端提供服务。反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。
2.Nginx特点
- 反向代理:
上面已经说过了。
- 负载均衡:
当请求过多,单个服务器难以负荷时,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上。
- 动静分离:
为了加快网站的解析速度,可以吧动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。具体的内容见本博客后面第五章。
二、安装、常用命令、配置文件
首先你得有一个linux操作系统的环境,要么是你自己的服务器,要么是你自己电脑上的虚拟机,要么是你租的云服务器。
1.ubuntu安装步骤
- 下载:
curl -O http://nginx.org/download/nginx-1.22.1.tar.gz
- 解压:
tar -xvf nginx-1.22.1.tar.gz
- 配置:
./configure --prefix=/usr/local/nginx --with-http_gzip_static_module
- 安装:
make
make install
- 报错解决参考:
https://blog.csdn.net/weixin_69306012/article/details/126777396
2.centos安装步骤
- 安装gcc环境,用来将官网下载的源码进行编译:
yum install gcc-c++
- 安装 pcre 库:
yum install -y pcre pcre-devel
- 安装zlib 库:
yum install -y zlib zlib-devel
- 安装安装 OpenSSL 库:
yum install -y openssl openssl-devel
- 下载nginx包:
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
- 解压nginx包:
tar -zxvf nginx-1.12.0.tar.gz
- 进入nginx文件夹:
cd nginx-1.12.0
- 使用默认配置:
./configure
- 编译安装:
make
make install
到此,nginx算是安装好了。
3.常用命令
- 以下所有命令都必须进入sbin目录以后才能执行:
# 进入nginx目录
cd /usr/local/nginx/sbin/
- 查看版本号:
./nginx -v
- 启动nginx:
# 启动nginx
./nginx
- 启动时报错端口占用,解决:
# 杀死80端口的进程
fuser -k 80/tcp
现在再次启动nginx。
- 关闭nginx:
./nginx -s stop
- 重新加载配置文件:
./nginx -s reload
- 访问nginx:
# 在浏览器中访问以下地址
http://服务器ip:80/
4.配置文件
-
配置文件所在目录: /usr/local/nginx/conf。
-
配置文件——全局块:
这部分都是些影响nginx全局配置的指令:
#user nobody;
worker_processes 1;# 配置nginx并发处理量,但是并发也会受硬件、软件的制约
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
- 配置文件——events块:
这部分用