
Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件代理服务器
在本篇中我们会简单介绍Nginx的特点,安装,相关指令使用以及配置信息和具体应用等
本篇内容属于《瑞吉外卖》的知识科普部分,有兴趣可以查看一下《瑞吉外卖》的相关文章内容
我们先来对Nginx做一个的简单的了解
Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件代理服务器
本身具有占用内存少,并发能力强等特点,其并发能力在同类型的网页服务器中表现较好,包括百度,京东等众多服务器都是采用Nginx
Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。
下面附上官方:nginx news
我们的Nginx通常使用在Linux服务器系统上,我们这里使用虚拟机来进行操作:
# 我们首先来下载一些关于Nginx安装的依赖包
yum -y install gcc pcre-devel zlib-devel openssl oepnssl-devel# 我们借助wget网上下载插件来实现
yum install wget
# 我们使用wget下载安装包
wget https://nginx.org/download/nginx-1.16.1.tar.gz# 解压安装包在当前文件夹root
tar -zxvf nginx-1.16.1.tar.gz# 跳转页面
cd nginx-1.16.1# 创建文件夹
mkdir /usr/local/nginx
# 安装
./configure --prefix=/usr/local/nginx# 安装
make && make install至此我们的Nginx安装完成
在安装完Nginx后,我们可以到相应文件下查看,可以看到主要分为四个文件包:
其中我们主要使用的两个文件是:
这里我们介绍一个Linux插件,可以详细查看该目录下所有的文件内容:
# Tree插件(需要先下载yum install tree)
tree我们可以看到其文件逻辑结构:

下面我们将着重介绍几个Nginx常用命令
首先我们需要来到sbin目录下:
# 跳转页面
cd /usr/local/nignx/sbin我们使用查看命令:
# 查看版本号
./nginx -v首先我们需要来到sbin目录下:
# 跳转页面
cd /usr/local/nignx/sbin我们使用检查命令:
# 检查版本以及配置信息
./nginx -t首先我们需要来到sbin目录下:
# 跳转页面
cd /usr/local/nignx/sbin我们使用相关命令:
# 启动命令
./nginx
# 停止命令
./nginx -s stop
# 重启命令
./nginx -s reload
# 查看nginx进程
ps -ef|grep nginx下面我们来简单介绍一下配置文件
我们通常将其配置文件分为三部分:
其中http块还分为两部分:
其中server还分为两部分:
我们需要注意的是:
我们可以到具体配置文件中去查看相关配置:
# 查看配置文件
vim /usr/local/nignx/conf/nignx.conf
# 以下为配置文件内容(已将#注释部分删除)
# 第一部分是全局块
worker_processes 1; # 这里表示可以同时有多少个进程
# 第二部分是events块
events {
worker_connections 1024; # 单个工作进程可以允许同时建立外部连接的数量,数字越大,能同时处理的连接越多
}
# 第三部分是http块,里面包含了代理,缓存,日志记录,虚拟主机配置等相关信息,我们后续会详细介绍
http {
# 3.1 http全局块
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# 3.2 Server块
server {
# 3.2.1 Server全局块
listen 80;
server_name localhost;
# 3.2.2 location块
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}Nginx具有三方面应用,下面我们将一一讲解
Nginx可以作为静态web服务器来部署静态资源。
静态资源指在服务端真实存在并且能够直接展示的一些文件,比如常见的htm页面、Css文件、 js文件、 图片、视频等资源。
我们可以直接将静态资源放置在Nginx的html文件夹下即可完成部署,同时Nginx处理静态资源的能力甚至相比于Tomcat来说更加高效
那么Nginx为什么能够自动配置静态资源呢?
# 主要依赖于我们的conf配置文件中的http块中的Server块
# Server块
server {
# 3.2.1 Server全局块
listen 80; # 表示监听端口(即我们访问网页的端口号,本机查询为192.168.44.128:80)
server_name localhost; # 端口名称(无所谓命名,一般是我们的域名)
# 3.2.2 location块
location / {
root html; # 静态资源来源(设置在html文件夹下,所以我们查找静态资源会在html文件夹下查找)
index index.html index.htm; # 默认主页,即访问192.168.44.128:80时出现的页面
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}在接触反向代理之前我们先来讲解正向代理:
其正向代理的主要功能:
其正向代理的主要特点:
正向代理图:

然后我们再来介绍反向代理:
其反向代理的主要功能:
其反向代理的主要特点:
反向代理图:

最后我们简单介绍一下如何配置反向代理:
# 我们同样来修改配置文件
vim /usr/local/nignx/conf/nignx.conf
# 进入后设置server块
# Server块
server {
# 3.2.1 Server全局块
listen 82; # 表示监听端口(即我们访问网页的端口号,本机查询为192.168.44.128:82)
server_name localhost; # 端口名称(无所谓命名,一般是我们的域名)
# 3.2.2 location块
location / {
proxy_pass http://192.168.44.129:8080; #我们将该请求转移到http://192.168.44.129:8080指定服务中
}
}我们首先来简单介绍一下负载均衡:
我们来简单解释两个概念:
负载均衡图:

最后我们简单介绍一下如何配置负载均衡:
# 我们同样来修改配置文件
vim /usr/local/nignx/conf/nignx.conf
# 首先我们需要在http中配置应用集群
http {
# 3.1 http全局块(配置应用集群)
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream targetserver{ # upstream表示定义应用集群,targetserver为名称
server 192.168.44.129:8080; # server表示配置其转发服务器端口,192.168.44.129:8080为自己配置即可
server 192.168.44.129:8081; # server表示配置其转发服务器端口,192.168.44.129:8081为自己配置即可
}
# 3.2 Server块
server {
# 3.2.1 Server全局块
listen 8080; # 我们访问时采用192.168.44.128
server_name localhost;
# 3.2.2 location块
location / {
proxy_pass targetserver; #我们将该请求转移到targetserver应用集群中去
}
}该篇内容到这里就结束了,希望能为你带来帮助~
该文章属于学习内容,具体参考B站黑马程序员的Java项目实战《瑞吉外卖》