一、Nginx的下载与安装

Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好

Nginx的安装配置教程

1.下载

在Nginx的官网的下载页面中选择较为稳定的 1.16 版本进行下载

nginx: downloadNginx的安装配置教程http://nginx.org/en/download.html

Nginx的安装配置教程

2.安装

由于nginx是基于c语言开发的,所以需要安装c语言的编译环境

//本次安装在linux系统下完成,需按步骤完成操作命令
//安装依赖包
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
//下载Nginx安装包
yum install wget
wget https://nginx.org/download/nginx-1.16.1.tar.gz
//解压nginx压缩包
tar -zxvf nginx-1.16.1.tar.gz
// 配置Nginx编译环境
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx
//编译&安装
make & make install

安装完Nginx后,可以切换到Nginx的安装目录(/usr/local/nginx),观察Nginx的目录结构

Nginx的安装配置教程

其中,conf/nginx.conf 是Nginx的核心配置文件

二、Nginx常用命令和环境变量配置 

1.Nginx常用命令

在执行下面的指令时,都需要在/usr/local/nginx/sbin/目录下执行。

// 查看版本
./nginx -v
//检查配置文件
./nginx -t
//启动
./nginx
//停止
./nginx -s stop
//重新加载
./nginx -s reload

注意:

启动完成后,要想正常访问Nginx的80端口 ,需关闭防火墙或开放指定端口号,执行的指令如下:

A. 关闭防火墙

systemctl stop firewalld

B. 开放80端口

firewall-cmd --zone=public --add-port=80/tcp --permanent

firewall-cmd --reload

2.环境变量配置 

上述在使用nginx命令在进行服务的启动、停止、重新加载时,都需要用到一个指令nginx,而这个指令是在nginx/sbin目录下的,每一次使用这个指令都需要切换到sbin目录才可以,使用相对繁琐。 可通过配置nginx的环境变量,在任意目录下都可以执行该指令来操作nginx 。

通过vim编辑器,打开/etc/profile文件, 在PATH环境变量中增加nginx的sbin目录,如下:

Nginx的安装配置教程

 修改完配置文件之后,需要执行 source /etc/profile 使文件生效。 

三、Nginx-应用

1.配置文件结构

nginx的配置文件(conf/nginx.conf)整体上分为三部分:

全局块、配置和nginx运行相关的全局配置

events块:配置和网络连接相关的配置

http块 :配置代理、缓存、日志记录、虚拟主机等配置

Nginx的安装配置教程

在http块中可以包含多个server块,每个server块可以配置多个location块。

2.部署静态资源

Nginx可以作为静态web服务器来部署静态资源。这里所说的静态资源是指在服务端真实存在,并且能够直接展示的一些文件,比如常见的html页面、css文件、js文件、图片、视频等资源。

将静态资源部署到Nginx非常简单,只需要将文件复制到Nginx安装目录下的html目录中即可。

server {
    listen 80;				#监听端口	
    server_name localhost;	#服务器名称
    location / {			#匹配客户端请求url
        root html;			#指定静态资源根目录
        index index.html;	#指定默认首页
    }
}

将静态资源上传到 /usr/local/nginx/html 目录

Nginx的安装配置教程

启动nginx

Nginx的安装配置教程

访问

Nginx的安装配置教程

我们也可以通过修改指定默认首页的路径的方式来修改访问路径

Nginx的安装配置教程

配置文件修改后,需要重新加载一下,才可以生效 :nginx -s reload

3.反向代理

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。用户不需要知道目标服务器的地址,也无须在用户端作任何设定,对于用户来说,访问反向代理服务器是完全无感知的。 在nginx中,我们可以在nginx.conf中配置反向代理:

Nginx的安装配置教程

进入nginx的安装目录,并编辑配置文件nginx.conf:

cd /usr/local/nginx/conf/
vim nginx.conf

在http块中,再添加一个server块虚拟主机的配置,监听82端口,并配置反向代理proxy_pass:

server {
    listen 82;
    server_name localhost;
    location / {
        proxy_pass http://192.168.200.201:8080;     #反向代理配置,将请求转发到指定服务
    }
}
//上述配置的含义为: 当我们访问nginx的82端口时,根据反向代理配置,
会将请求转发到 http://192.168.200.201:8080 对应的服务上。

检查配置文件,并重新加载

nginx -t

nginx -s reload