如何在 Linux 上从源代码安装和配置 Nginx

举报
Tiamo_T 发表于 2022/05/05 23:47:01 2022/05/05
【摘要】 在我们了解 nginx 是什么之前,我们应该知道 nginx 的发音。 它不是 NGIN X。 nginx 发音为“Engine X”。 从“Engine X”中删除两个 e 后,nginx 是缩写形式。 nginx 是一个类似于 Apache 的开源 Web 服务器,但重量很轻。nginx 既是 Web 服务器又是反向代理服务器。

在我们了解 nginx 是什么之前,我们应该知道 nginx 的发音。

它不是 NGIN X。 nginx 发音为“Engine X”。

从“Engine X”中删除两个 e 后,nginx 是缩写形式。

nginx 是一个类似于 Apache 的开源 Web 服务器,但重量很轻。nginx 既是 Web 服务器又是反向代理服务器。

以下是nginx的一些特性:

  • 它提供静态和索引文件
  • 带缓存的反向代理
  • 支持 SSL
  • 具有容错能力的简单负载平衡
  • 可以配置基于名称和基于 IP 的虚拟服务器
  • HTTP 基本认证
  • 支持重写模块
  • 支持 gzip、XSLT、SSI 和图像大小调整过滤器
  • 支持所有主要的邮件代理服务器功能

这是关于 nginx 的一系列文章的一部分。

让我们开始安装 nginx 并让它运行起来,这只需 5 分钟。

1.下载nginx

从这里下载 nginx ,或者使用 wget,如下所示。当前稳定版本为 nginx 1.0.5


cd
wget http://nginx.org/download/nginx-1.0.5.tar.gz
tar xvfz nginx-1.0.5.tar.gz
cd nginx-1.0.5

2.安装nginx

有很多选项可以传递给 ./configure。要识别所有配置选项的列表,请执行以下操作。

./configure --help

以下是一些自动启用的 http 模块。如果您需要禁用它们,您应该将“–without-http_[module_name]”传递给 ./configure 选项。例如,要禁用“proxy_module”,您应该执行 ./configure –without-http_proxy_module。

  • charset_module – HTTP 字符集模块
  • gzip_module – 用于压缩的 HTTP gzip 模块
  • ssi_module – 服务器端包含模块
  • auth_basic_module – HTTP 基本认证模块。
  • autoindex_module – 自动索引
  • rewrite_module – 支持重写规则的 HTTP 重写
  • proxy_module – HTTP 反向代理模块
  • fastcgi_module – 支持 fastcgi
  • memcached_module – 用于 nginx 的 Memcached 模块
  • ..

以下是一些不会自动启用的 httpd 模块。如果您需要启用它们,您应该将“–with-http_[module_name]”传递给 ./configure 选项。例如,要在 nginx 中启用 SSL,您应该执行“./configure –with-http_ssl_module”。

  • ssl_module – 支持安全套接层 (SSL) 模块
  • xslt_module – 支持可扩展样式表语言转换 (XSLT) 模块
  • perl_module – 支持 Perl
  • ..

首先,通过执行 ./configure 使用默认配置选项安装 nginx,如下所示。

./configure
make
make install

在 ./configure 期间,您可能会收到“./configure: error: the HTTP rewrite module requires the PCRE library”。有关缺少 nginx http 重写模块所需的 PCRE 库的错误消息。

为了解决这个问题,要么在你的 Linux 上安装 “pcre” 和 “pcre-devel” 软件包,或者通过执行 “./configure –without-http_rewrite_module” 禁用重写模块

nginx 将安装在 /usr/local/nginx 下,如 ./configure 输出所示。

Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + md5: using system crypto library
  + sha1: using system crypto library
  + using system zlib library

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

3.更改默认的nginx监听端口

默认情况下,Nginx 配置为在端口 80 上侦听。如果您将其安装在已运行 apache 服务器的机器上进行测试,则应更改 nginx 侦听端口。

与 apache 的 httpd.conf 文件类似,nginx 的 nginx.conf 文件位于 /usr/local/nginx/conf 下。

在 nginx.conf 的 server 部分,将端口 80 更改为 8081。

# vi /usr/local/nginx/conf/nginx.conf
    server {
        listen       8081;
        server_name  localhost;

4.启动Nginx服务器

nginx 可执行文件位于 /usr/local/nginx/sbin 目录下。只需调用此可执行文件即可启动 nginx 服务器。

cd /usr/local/nginx/sbin
./nginx

一旦你开始这个,你会看到 nginx 的“主进程”和“工作进程”,如果你执行 ps.

# ps -ef | grep -i nginx
root     18596 13:16 nginx: master process ./nginx
nobody   18597 13:16 nginx: worker process

启动 nginx 服务器后,转到 http://your-ip-address/(或 http://your-ip-address:8081,如果您更改了 nginx.conf 中的监听指令),您应该会看到默认值nginx index.html,应该是“Welcome to nginx!”

5. 停止 Nginx 服务器

要停止 nginx 服务器,请执行以下操作。

cd /usr/local/nginx/sbin
./nginx -s stop

要查看 nginx 的当前版本,请执行以下操作:

# ./nginx -v
nginx: nginx version: nginx/1.0.5

要调试问题,请查看位于 /usr/local/nginx/logs 下的 error.log 和 access.log 文件

# ls /usr/local/nginx/logs/
access.log
error.log
nginx.pid
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。