6.6 nginx

6.6 nginx #

6.6.1 nginx 和 OpenResty #

Nginx和OpenResty是两个不同但有关联的项目。

Nginx 是一个开源的高性能 Web 服务器和反向代理服务器。它具有轻量级、高并发处理能力和低内存消耗等特点,常被用于搭建静态网站、负载均衡和反向代理等场景。Nginx 通常使用 C 语言编写,并以模块化设计的方式提供丰富的功能扩展。

OpenResty 是一个基于 Nginx 的 Web 应用服务器软件集成包,它将 Nginx 与一组扩展模块和第三方库进行了集成,以提供更强大的功能。 OpenResty 允许开发人员使用 Lua 编程语言来编写 Nginx 的配置文件和扩展模块,从而实现高度可定制的 Web 应用程序。通过 OpenResty,开发人员可以在 Nginx 中使用 Lua 编写的脚本,以实现动态内容生成、API 网关、缓存加速和高级负载均衡等功能。

可以说 OpenResty 是一个基于 Nginx 的增强版本,它通过添加 Lua 编程语言的支持和一系列扩展模块,使得 Nginx 可以处理更复杂的任务和场景。OpenResty 在一些需要高度定制化和可扩展性的 Web 应用程序中非常有用,特别是对于需要动态脚本处理和扩展功能的情况。

Nginx 是一个独立的高性能 Web 服务器和反向代理服务器,而 OpenResty 是基于 Nginx 的 Web 应用服务器软件集成包,通过添加 Lua 编程语言的支持和扩展模块,扩展了 Nginx 的功能。

6.6.2 OpenResty 安装 #

安装可以使用如下 2 条命令:

yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo

yum install openresty -y

如果在安装时提示如下错误:

-bash: yum-config-manager: command not found

可以通过安装 yum-utils 解决:

yum -y install yum-utils

配置文件和启动方式如下:

# 配置文件位置
/usr/local/openresty/nginx/conf/nginx.conf

# 常用命令
service openresty start | stop | restart | reload

6.6.3 域名虚拟主机 #

server {
  listen 80;
  server_name www.servera.com;
  location / {
  root html/servera;
  index index.html index.htm;
  }
}

这里在 /usr/local/openresty/nginx/conf/nginx.conf 文件中新建了 2 个 server:

 server {
   listen 8000;
   server_name www.servera.com;
   location / {
     root html/servera;
     index index.html index.htm;
   }
  }

  server {
   listen 8000;
   server_name www.serverb.com;
   location / {
     root html/serverb;
     index index.html index.htm;
   }
  }

在 /usr/local/openresty/nginx/sbin 目录中执行

./nginx -t

可以检查主配置文件是否有语法错误:

./nginx -s reload # 重新加载
./nginx -s stop   # 停止
./nginx           # 启动

可以看到 nginx 已经监听了 8000 和 80 端口:

修改 /etc/hosts 文件,添加一行解析:

127.0.0.1 www.servera.com www.serverb.com

在 /usr/local/openresty/nginx/html 目录中添加静态文件:

访问测试: