发布时间:2023-02-16 14:00
Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好
在Nginx的官网的下载页面中选择较为稳定的 1.16 版本进行下载
nginx: downloadhttp://nginx.org/en/download.html
由于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的目录结构
其中,conf/nginx.conf 是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
上述在使用nginx命令在进行服务的启动、停止、重新加载时,都需要用到一个指令nginx,而这个指令是在nginx/sbin目录下的,每一次使用这个指令都需要切换到sbin目录才可以,使用相对繁琐。 可通过配置nginx的环境变量,在任意目录下都可以执行该指令来操作nginx 。
通过vim编辑器,打开/etc/profile文件, 在PATH环境变量中增加nginx的sbin目录,如下:
修改完配置文件之后,需要执行 source /etc/profile 使文件生效。
nginx的配置文件(conf/nginx.conf)整体上分为三部分:
全局块、配置和nginx运行相关的全局配置
events块:配置和网络连接相关的配置
http块 :配置代理、缓存、日志记录、虚拟主机等配置
在http块中可以包含多个server块,每个server块可以配置多个location块。
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
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。用户不需要知道目标服务器的地址,也无须在用户端作任何设定,对于用户来说,访问反向代理服务器是完全无感知的。 在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