Nginx:修订间差异

无编辑摘要
 
(未显示同一用户的5个中间版本)
第26行: 第26行:
}}
}}
===安装===
===安装===
====预构建包安装====
Linux中安装开源版nginx:
<syntaxhighlight lang="bash" >
# Ubuntu中
sudo apt-get update
sudo apt-get install nginx
sudo nginx -v
</syntaxhighlight>
接下来在浏览器访问 http://localhost:8080 可以看到Nginx页面。
{{了解更多
|[https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/#installing-prebuilt-ubuntu-packages  Nginx Plus文档:安装nginx开源版/使用Ubuntu预构建包]
}}
====Docker安装====
====Docker安装====
使用默认配置启动一个容器,接下来在浏览器访问 http://localhost:8080 可以看到Nginx页面。
使用默认配置启动一个容器,接下来在浏览器访问 http://localhost:8080 可以看到Nginx页面。
第40行: 第52行:
|[https://www.nginx.com/blog/deploying-nginx-nginx-plus-docker/ Nginx 博客:使用Docker部署Nginx或Nginx plus]
|[https://www.nginx.com/blog/deploying-nginx-nginx-plus-docker/ Nginx 博客:使用Docker部署Nginx或Nginx plus]
}}
}}
====Linux====
====源代码安装====


== 快速入门 ==
== 快速入门 ==
=== Nginx命令 ===
=== Nginx命令 ===
{| class="wikitable"  style="width: 100%;
{| class="wikitable"  style="width: 100%;
! 目录
! 名称
! 描述
! 描述
! 示例
|-
|-
| nginx -s signal
| nginx -s signal
|向主进程发送信号,信号参数如下:<br \><code>nginx -s stop</code> 强制关闭<br \> <code>nginx -s quit</code> 正常关闭<br \><code>nginx -s reload</code> 重新加载配置 <br \><code>nginx -s reopen</code>  重新打开日志文件
|向主进程发送信号,信号参数如下:<br \><code>nginx -s stop</code> 强制关闭<br \> <code>nginx -s quit</code> 正常关闭<br \><code>nginx -s reload</code> 重新加载配置 <br \><code>nginx -s reopen</code>  重新打开日志文件
|
|-  
|-  
| nginx -t <br \>nginx -T
| nginx -t <br \>nginx -T
| 检查配置文件是否有语法错误。其中-T还会将配置文件转储到标准输出。  
| 检查配置文件是否有语法错误。其中-T还会将配置文件转储到标准输出。  
|
|-  
|-  
| nginx -v <br \>nginx  -V
| nginx -v <br \>nginx  -V
| 打印 nginx 版本,其中-V还会输出编译器版本和配置参数。
| 打印 nginx 版本,其中-V还会输出编译器版本和配置参数。
|-
|<nowiki>ps aux | grep nginx</nowiki>
| Nginx 进程状态。
|-
| 关闭或开启nginx
| <syntaxhighlight lang="bash" >
# 停止 Nginx 服务
sudo systemctl stop nginx
# 禁用 Nginx 服务的自动启动
sudo systemctl disable nginx
# 启用 Nginx 服务的自动启动
sudo systemctl enable nginx
# 查看nginx状态
sudo systemctl status nginx
</syntaxhighlight>
|-
|
|  
|  
|-  
|-  
|
|
|
|  
|  
|}
|}
第68行: 第96行:
|[https://nginx.org/en/docs/switches.html Nginx文档:命令行参数]
|[https://nginx.org/en/docs/switches.html Nginx文档:命令行参数]
}}
}}
===Nginx默认目录===
===Nginx默认目录===
{| class="wikitable"  style="width: 100%;
{| class="wikitable"  style="width: 100%;
第154行: 第183行:


== 邮件代理 ==
== 邮件代理 ==
== 日志 ==
Nginx 生成了不同类型的日志文件,用于记录服务器的活动和访问情况。
=== 日志类型 ===
常见日志文件如下:
{| class="wikitable"
|-
! 日志名称
! 描述
|-
| Access Log <br />访问日志
| 记录传入请求的详细信息,如来源、资源、状态码等。 默认情况下,访问日志文件位于 /var/log/nginx/access.log。 <br />监视日志文件:<code>tail -f /var/log/nginx/access.log</code> <br />查看日志内容:<code>cat /var/log/nginx/access.log</code>
示例:<code>127.0.0.1 - - [17/Aug/2022:10:12:16 +0000] "GET /index.html" 200 1234 "-" "Mozilla/5.0"</code>
|-
| Error Log
| 记录服务器错误和异常。默认情况下,错误日志文件位于<code>/var/log/nginx/error.log</code>。 <br />监视日志文件:<code>tail -f /var/log/nginx/error.log</code> <br />查看日志内容:<code>cat /var/log/nginx/error.log</code>
示例: <code>2023/08/10 12:23:56 [error] 12345#0: *1 some error message here</code>
|-
| SSL Log
| 记录 SSL 握手和加密通信的信息
示例:<code>[17/Aug/2022:12:30:56 +0000] 12345#0: *1 SSL handshake started</code>
|-
| 应用程序日志
| 记录自定义的应用程序信息
示例:<code>App: Request processed successfully</code>
|-
| 缓存日志
| 记录缓存命中和未命中的信息
示例:<code>2023/08/17 11:32:56 [cache] HIT: /image.jpg</code>
|-
| 代理/负载均衡日志
| 记录代理操作和负载均衡信息
示例:<code>127.0.0.1 - - [17/Aug/2021:12:22:56 +0000] "GET /api/resource" 200 5678</code>
|}
=== 配置日志 ===


==资源==
==资源==
第161行: 第225行:
* Nginx 文档:https://nginx.org/en/docs/
* Nginx 文档:https://nginx.org/en/docs/
* Nginx Plus 文档:https://docs.nginx.com/
* Nginx Plus 文档:https://docs.nginx.com/
* Nginx Wiki:https://www.nginx.com/resources/wiki/
* Nginx 源代码:https://hg.nginx.org/nginx
* Nginx 源代码:https://hg.nginx.org/nginx
* Nginx 源代码镜像:https://github.com/nginx/nginx
* Nginx 源代码镜像:https://github.com/nginx/nginx

2024年5月2日 (四) 15:50的最新版本

Nginx(发音同“engine X”)是一款开源的Web服务器程序,也可以用作反向代理、负载均衡、邮件代理和HTTP缓存。

简介

时间轴

  • 2002年,伊戈尔·赛索耶夫(俄语:Игорь Сысоев)开始开发Nginx,最初是为了解决C10k问题和俄罗斯Rambler搜索引擎及其门户网站使用。
  • 2004年10月4日,首次发布初始版本 Nginx 0.1.0 。
  • 2011年,成立一家同名公司,来提供支持和Nginx Plus付费版本。
  • 2019年3月11日,F5 Networks以6.7亿美元收购Nginx公司。
  • 2021年04月20日,发布nginx 1.20.0 版本。

了解更多 >> Nginx 官网 Nginx:Changes 维基百科:Nginx 维基百科:Nginx(英)


Nginx与Nginx Plus

Nginx Plus是Nginx的付费版本,Nginx Plus在开源Nginx基础上增加了一些功能和服务,如:

  • 高级负载平衡
  • 主动健康检查
  • 会话保持
  • 专业的技术支持

了解更多 >> Nginx Plus官网


安装

预构建包安装

Linux中安装开源版nginx:

# Ubuntu中
sudo apt-get update
sudo apt-get install nginx
sudo nginx -v

接下来在浏览器访问 http://localhost:8080 可以看到Nginx页面。

了解更多 >> Nginx Plus文档:安装nginx开源版/使用Ubuntu预构建包


Docker安装

使用默认配置启动一个容器,接下来在浏览器访问 http://localhost:8080 可以看到Nginx页面。

docker run -d --name mynginx -p 8080:80  nginx

将nginx容器内的日志目录、配置目录和网站目录分别映射到主机当前目录nginx文件夹下的log、conf和html

docker run -d -p 80:80 --name nginx -v $(pwd)/nginx/log/:/var/log/nginx -v $(pwd)/nginx/conf:/etc/nginx -v $(pwd)/nginx/html/:/usr/share/nginx/html  nginx

了解更多 >> Docker Hub:Nginx Nginx 文档:使用Docker部署Nginx或Nginx plus Nginx 博客:使用Docker部署Nginx或Nginx plus


源代码安装

快速入门

Nginx命令

名称 描述
nginx -s signal 向主进程发送信号,信号参数如下:
nginx -s stop 强制关闭
nginx -s quit 正常关闭
nginx -s reload 重新加载配置
nginx -s reopen 重新打开日志文件
nginx -t
nginx -T
检查配置文件是否有语法错误。其中-T还会将配置文件转储到标准输出。
nginx -v
nginx -V
打印 nginx 版本,其中-V还会输出编译器版本和配置参数。
ps aux | grep nginx Nginx 进程状态。
关闭或开启nginx
# 停止 Nginx 服务
sudo systemctl stop nginx

# 禁用 Nginx 服务的自动启动
sudo systemctl disable nginx

# 启用 Nginx 服务的自动启动
sudo systemctl enable nginx

# 查看nginx状态
sudo systemctl status nginx

了解更多 >> Nginx文档:命令行参数


Nginx默认目录

目录 位置 描述
工作目录 /etc/nginx 存放一些配置文件等,如/etc/nginx/nginx.conf默认配置文件
web目录 /usr/share/nginx/html/ html根目录,在配置文件中查看和设置。
日志目录 /var/log/nginx
Nginx软件 /usr/sbin/nginx 可执行文件
启动文件 /etc/init.d/nginx

Nginx配置

概览

Nginx配置文件是特定格式的文本文件。默认情况下配置文件为nginx.conf,放在/etc/nginx/目录(某些操作系统也可能在/usr/local/nginx/conf/usr/local/etc/nginx目录)。

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

了解更多 >> Nginx 文档:Creating NGINX Plus and NGINX Configuration Files


全局配置

了解更多 >> Nginx 文档:核心模块


Web服务器

了解更多 >> Nginx 文档:将 Nginx 和 Nginx Plus 配置为 Web 服务器‎


配置 HTTPS 服务器

反向代理

负载均衡

邮件代理

日志

Nginx 生成了不同类型的日志文件,用于记录服务器的活动和访问情况。

日志类型

常见日志文件如下:

日志名称 描述
Access Log
访问日志
记录传入请求的详细信息,如来源、资源、状态码等。 默认情况下,访问日志文件位于 /var/log/nginx/access.log。
监视日志文件:tail -f /var/log/nginx/access.log
查看日志内容:cat /var/log/nginx/access.log

示例:127.0.0.1 - - [17/Aug/2022:10:12:16 +0000] "GET /index.html" 200 1234 "-" "Mozilla/5.0"

Error Log 记录服务器错误和异常。默认情况下,错误日志文件位于/var/log/nginx/error.log
监视日志文件:tail -f /var/log/nginx/error.log
查看日志内容:cat /var/log/nginx/error.log

示例: 2023/08/10 12:23:56 [error] 12345#0: *1 some error message here

SSL Log 记录 SSL 握手和加密通信的信息

示例:[17/Aug/2022:12:30:56 +0000] 12345#0: *1 SSL handshake started

应用程序日志 记录自定义的应用程序信息

示例:App: Request processed successfully

缓存日志 记录缓存命中和未命中的信息

示例:2023/08/17 11:32:56 [cache] HIT: /image.jpg

代理/负载均衡日志 记录代理操作和负载均衡信息

示例:127.0.0.1 - - [17/Aug/2021:12:22:56 +0000] "GET /api/resource" 200 5678

配置日志

资源

官网

书籍

教程

相关网站