一、Nginx的下载与安装

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

1.下载

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

nginx: download

2.安装

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

//本次安装在linux系统下完成,需按步骤完成操作命令//安装依赖包yum -y install gcc pcre-devel zlib-devel openssl openssl-devel//下载Nginx安装包yum install wgetwget 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的目录结构

其中,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目录,如下:

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

三、Nginx-应用

1.配置文件结构

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

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

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

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

在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 -s reload

3.反向代理

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

进入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