知行迭代
导航
首页
最近更改
随机页面
常用
分类目录
Linux命令
Mediawiki常用
电脑技巧
工具
链入页面
相关更改
特殊页面
页面信息
登录
查看“Nginx”的源代码
←
Nginx
页面
讨论
阅读
查看源代码
查看历史
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:[
[1]
]
您可以查看和复制此页面的源代码。
Nginx(发音同“engine X”)是一款开源的Web服务器程序,也可以用作反向代理、负载均衡、邮件代理和HTTP缓存。 ==简介== ===时间轴=== * 2002年,伊戈尔·赛索耶夫(俄语:Игорь Сысоев)开始开发Nginx,最初是为了解决[https://en.wikipedia.org/wiki/C10k_problem C10k]问题和俄罗斯Rambler搜索引擎及其门户网站使用。 * 2004年10月4日,首次发布初始版本 Nginx 0.1.0 。 * 2011年,成立一家同名公司,来提供支持和Nginx Plus付费版本。 * 2019年3月11日,[https://www.f5.com/ F5 Networks]以6.7亿美元收购Nginx公司。 * 2021年04月20日,发布nginx 1.20.0 版本。 {{了解更多 |[http://nginx.org/ Nginx 官网] |[https://nginx.org/en/CHANGES Nginx:Changes] |[https://zh.wikipedia.org/zh-cn/Nginx 维基百科:Nginx ] |[https://en.wikipedia.org/wiki/Nginx 维基百科:Nginx(英) ] }} ===Nginx与Nginx Plus=== Nginx Plus是Nginx的付费版本,Nginx Plus在开源Nginx基础上增加了一些功能和服务,如: * 高级负载平衡 * 主动健康检查 * 会话保持 * 专业的技术支持 {{了解更多 |[https://www.nginx.com/products/nginx Nginx Plus官网] }} ===安装=== ====预构建包安装==== 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安装==== 使用默认配置启动一个容器,接下来在浏览器访问 http://localhost:8080 可以看到Nginx页面。 docker run -d --name mynginx -p 8080:80 nginx 将nginx容器内的日志目录、配置目录和网站目录分别映射到主机当前目录nginx文件夹下的log、conf和html <syntaxhighlight lang="bash"> 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 </syntaxhighlight> {{了解更多 |[https://hub.docker.com/_/nginx/ Docker Hub:Nginx] |[https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-docker/ Nginx 文档:使用Docker部署Nginx或Nginx plus] |[https://www.nginx.com/blog/deploying-nginx-nginx-plus-docker/ Nginx 博客:使用Docker部署Nginx或Nginx plus] }} ====源代码安装==== == 快速入门 == === Nginx命令 === {| class="wikitable" style="width: 100%; ! 名称 ! 描述 |- | 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> 重新打开日志文件 |- | nginx -t <br \>nginx -T | 检查配置文件是否有语法错误。其中-T还会将配置文件转储到标准输出。 |- | nginx -v <br \>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> |- | | |- | | |} {{了解更多 |[https://nginx.org/en/docs/switches.html Nginx文档:命令行参数] }} ===Nginx默认目录=== {| class="wikitable" style="width: 100%; ! 目录 ! 位置 ! 描述 |- | 工作目录 | /etc/nginx | 存放一些配置文件等,如<code>/etc/nginx/nginx.conf</code>默认配置文件 |- | web目录 | /usr/share/nginx/html/ | html根目录,在配置文件中查看和设置。 |- | 日志目录 | /var/log/nginx | |- | Nginx软件 | /usr/sbin/nginx | 可执行文件 |- | 启动文件 | /etc/init.d/nginx | |} == Nginx配置 == === 概览 === Nginx配置文件是特定格式的文本文件。默认情况下配置文件为<code>nginx.conf</code>,放在<code>/etc/nginx/</code>目录(某些操作系统也可能在<code>/usr/local/nginx/conf</code>或<code>/usr/local/etc/nginx</code>目录)。 <syntaxhighlight lang='JSON'> 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; } </syntaxhighlight> {{了解更多 |[https://docs.nginx.com/nginx/admin-guide/basic-functionality/managing-configuration-files/ Nginx 文档:Creating NGINX Plus and NGINX Configuration Files] }} === 全局配置 === {{了解更多 |[https://nginx.org/en/docs/ngx_core_module.html Nginx 文档:核心模块] }} == Web服务器 == {{了解更多 |[https://docs.nginx.com/nginx/admin-guide/web-server/web-server/ Nginx 文档:将 Nginx 和 Nginx Plus 配置为 Web 服务器] }} === 配置 HTTPS 服务器 === == 反向代理 == == 负载均衡 == == 邮件代理 == == 日志 == 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> |} === 配置日志 === ==资源== ===官网=== * Nginx 官网:https://nginx.org/ * Nginx Plus 官网:https://www.nginx.com/ * Nginx 文档:https://nginx.org/en/docs/ * Nginx Plus 文档:https://docs.nginx.com/ * Nginx Wiki:https://www.nginx.com/resources/wiki/ * Nginx 源代码:https://hg.nginx.org/nginx * Nginx 源代码镜像:https://github.com/nginx/nginx ===书籍=== *[https://tengine.taobao.org/book/index.html 《Nginx开发从入门到精通》] 在线书籍,作者为淘宝核心系统服务器平台组成员 === 教程 === * [https://github.com/dunwu/nginx-tutorial Github.com/dunwu:Nginx 极简教程] * [https://www.w3cschool.cn/nginx/ w3cschool.cn:Nginx 入门指南] * [https://learnku.com/articles/46237 LearnKu:北行 - NGINX 从入门到精通,学会这些就够了] * [https://www.ruanyifeng.com/blog/2018/02/nginx-docker.html 阮一峰:Nginx 容器教程] ===相关网站=== *[https://zh.wikipedia.org/zh-cn/Nginx 维基百科:Nginx ] [[分类:Web开发]]
本页使用的模板:
模板:了解更多
(
查看源代码
)
返回至“
Nginx
”。