目录
一、Nginx介绍二、下载和安装三、Nginx命令1.查看版本2.检查配置文件正确性3.启动和停止4.重新加载配置文件 四、配置文件结构五、Nginx具体应用1.部署静态资源2.反向代理3.负载均衡
一、Nginx介绍
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件( IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。
二、下载和安装
安装过程:
1、安装依赖包
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
2、下载Nginx安装包
wget https://nginx.org/download/nginx-1.16.1.tar.gz
3、解压
tar -zxvf nginx-1.16.1.tar.gz
4.进入nginx目录
cd nginx-1.16.1
5.指定一会安装nginx的安装目录
./configure --prefix=/usr/local/nginx
6.编译安装
make && make install
目录结构
conf/nginx.conf------------------------>nginx配置文件html--------------------------------------->存放静态目录logs--------------------------------------->存放日志文件sbin/nginx------------------------------->二进制文件,用于启动,停止nginx服务三、Nginx命令
1.查看版本
./nginx -v
2.检查配置文件正确性
./nginx -t
3.启动和停止
启动:
./nginx
停止:
./nginx -s stop
查看Nginx进程
ps -ef | grep nginx
4.重新加载配置文件
./nginx -s reload
可以配置nginx的环境变量,便于我们执行命令
在/etc/profile中的PATH下配置,多个环境变量之间用冒号分隔
四、配置文件结构
Nginx整体配置文件(nginx.conf)整体分为三部分:
全局块----------------->和Nginx运行相关的全局配置events块--------------->和网络连接的相关配置http块------------------->代理、缓存、日志、虚拟主机配置 http全局块Server块 Server全局块location块注意:http块中可以配置多个Server块,每个Server块可以配置多个location块
五、Nginx具体应用
1.部署静态资源
Nginx可以作为静态web服务器来部署静态资源。静态资源指在服务端真实存在并且能够直接展示的一些文件,比如常见的html页面、css文件、 js文件、图片、视频等资源。相对于Tomcat, Nginx处理静态资源的能力更加高效,所以在生产环境下,一般都会 将静态资源部署到Nginx中。将静态资源部署到Nginx非常简单,只需要将文件复制到Nginx安装目录下的html目录中即可。
server {listen 80; #监听端口server_name localhost; #服务器名称location / { #匹配客户端请求urlroot html; #指定静态资源根目录index index.html; #指默认首页}}
2.反向代理
正向代理: 用户知道代理服务器的地址
反向代理:
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。用户不需要知道目标服务器的地址,也无须在用户端作任何设定。
配置反向代理
server {listen 82;server_name localhost; location / {proxy_.pass http://192.168.138.101:8080; #反向代理配置,将请求转发到指定服务}}
3.负载均衡
早期的网站流量和业务功能都比较简单,单台服务器就可以满足基本需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群,进行性能的水平扩展以及避免单点故障出现。
应用集群:将同一应用部署到多台机器上,组成应用集群,接收负载均衡器分发的请求,进行业务处理并返回响应数据负载均衡器:将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理配置如下:
upstream targetserver{ #upstream指令可以定义一-组服务 器server 192.168.138.101:8080 weight=10; #可以设置权重,默认都是1,数值越大,分配的越多server 192.168.138.101:8081 weight=5;}server {listen 8080;server_name localhost;location / {proxy_.pass http://targetserver;}}
负载均衡策略: