Nginx搭建

本文详细介绍了Nginx服务的基础知识,包括其作为高性能轻量级Web服务软件的优势,如高并发处理能力和低资源消耗。文章还对比了Nginx与Apache的区别,并提供了Nginx的编译安装步骤,包括创建运行用户、安装依赖、配置编译选项以及启动服务的方法。此外,还讨论了Nginx的配置文件结构和关键配置块,如全局块、events块和http块。最后,提到了如何检查Nginx版本和启用HTTP_STUB_STATUS模块,以及如何通过修改配置文件来实现状态统计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nginx服务基础
概述
一款高新能 轻量级Web服务软件
稳定性高
系统资源消耗低
对HTTP并发连接的处理能力高
单台物理服务器可支持30 000~50 000个并发请求

nginx相对于apache的优点
轻量级,同样起web服务,比apache占用更少的内存及资源高并发,nginx处理请求是异步非阻塞的,而apache是阻塞型的在高并发下,nginx能保持低资源低消耗高性能高度模块化的设计。

编写模块相对简单

apache相对于nginx的优点
Rewrite比nginx的rewrite强大 模块多,基本想到的都可以找到少bug, nginx的bug相对较超稳定

一般来说,需要性能的web服务,用nginx。若不需要性能只求稳定,就选用apache。 Nginx处理动态请求是弱项,一般动态请求要Apache去做Nginx只适合处理静态网页或反向代理。

编译安装Nginx服务
关闭防火墙,将安装Nginx所需要的软件包传到任意目录

[root@localhost opt]# systemctl stop firewalld.service
[root@localhost opt]# systemctl disable firewalld.service
[root@localhost opt]# setenforce 0

在这里插入图片描述
安装相关依赖包

[root@localhost opt]# yum -y install pcre-devel zlib-devel gcc gcc-c++ make

创建运行用户和组一以便提供相应的库和头文件

[root@localhost opt]# useradd -M -s /sbin/nologin nginx
#不建立家目录不允许用户登录

压缩数据包并编译安装Nginx

[root@localhost opt]# tar -zxvf nginx-1.12.2.tar.gz #解压数据包

[root@localhost opt]# cd nginx-1.12.2/ #切换到安装包目录下
[root@localhost nginx-1.12.2]# ./configure \ #配置
–prefix=/usr/local/nginx \ #暗转路径
–user=nginx \ #指定用户名
–group=nginx \ #指定组名
–with-http_stub_status_module #启用此模块支持状态统计

在这里插入图片描述

[root@localhost nginx-1.12.2]# make -j2 && make install #编译并安装

做软链接让系统识别命令并启动nginx
在这里插入图片描述
检查、启动、重启、停止nginx服务

nginx -t #检查配置文件语法格式同样可以看到它的配置文件

在这里插入图片描述

nginx #启动nginx服务

在这里插入图片描述

kill -3 <PID号> #杀进程

在这里插入图片描述

添加Nginx系统服务
脚本控制服务

[root@localhost nginx-1.12.2]# cd /etc/init.d/
[root@localhost init.d]# vim nginx

在这里插入图片描述
在这里插入图片描述
查看nginx版本信息
在这里插入图片描述

Nginx服务配置文件
nginx服务的主配置文件

/usr/local/nginx/conf/nginx.conf

配置文件分为一下块
全局块:全局配置。对全局生效
events块:配置影响nginx服务器与用户的网络连接
http块:配置代理,缓存,日志定义绝大多数功能和第三方模块的配置
server块:配置虚拟主机的相关参数,一个http块可以有多个server块
lication块:用于配置匹配的url
upstream块:配置后端服务器具体地址,负载均衡配置不可或缺的部分

全局配置

#user nobody; #运行用户默认为nobody
worker_processes 1; #工作进程数量,一帮设置为和服务器cpu核数一样
#error_log logs/error.log; #错误日志文件的位置
#pid logs/nginx.pid; PID文件位置

I/O事件配置

events {
use epoll; #使用 epoll 模型以提高性能,2.6 以上版本建议使用
worker_connections 4096; #每个进程处理4096个连接
}

若工作进程数为 4,每个进程处理 4 096 个连接,则允许 Nginx 正常提供服务的连接数为(4*4096=16392),虽然说单台物理服务器可支持30 000~50 000个并发请求,但是具体还要看服务器硬件、网络带宽等物理条件的性 能表现,在生产环境中一般也就2-3万并发请求。

如提高每个进程的连接数还需执行"ulimit -n 65535"命令临时修改本地每个进程可以同时打开的最大文件数。

在Linux平台.上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。

可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制。
epoll(socket描述符)是Linux内核]为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率

临时修改本地每个进程可以同时打开的最大文件数
在这里插入图片描述
永久修改

[root@localhost ~]# vim /etc/security/limits.conf #编辑内核配置文件

在这里插入图片描述

nginx 内置了 HTTP_STUB_STATUS 状态统计模块,用来反馈当前的 Web 访问情况, 配置编译参数时可添加–with-http_stub_status_module 来启用此模块支持,可以使用命令

/usr/local/sbin/nginx -v #查看已安装Nginx是否包含HTTP_STUB_STATUS模块
cat /opt/nginx-1.12.0/auto/options | grep YES #查看nginx已安装的所有模块

修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置(建议修改之前备份,首次不备份可以系统已将原始文件备份)
在这里插入图片描述

[root@localhost conf]#vim /usr/local/nginx/conf/nginx.conf #编辑配置文件

在这里插入图片描述

[root@localhost conf]#systemctl restart nginx #重启服务

### 使用 Nginx 搭建 WebDAV 服务器 #### 安装必要的模块和支持软件包 为了使 Nginx 支持 WebDAV 功能,可能需要编译安装带有 `--with-http_dav_module` 的 Nginx 或者添加第三方扩展模块如 `nginx-dav-ext-module` 来增强其功能[^2]。 #### 创建用于 WebDAV 访问的用户账号 建议创建专门的服务账户来运行 Nginx 和处理 WebDAV 请求。这可以通过 Linux 用户管理命令完成: ```bash groupadd nginx useradd -c "nginx user" -d /var/cache/nginx -s /sbin/nologin nginx ``` 此步骤有助于提高安全性并遵循最小权限原则[^3]。 #### 设置认证机制 为了让客户端能够安全地连接到 WebDAV 服务,应该配置基本的身份验证方式。可以利用 OpenSSL 工具生成加密后的密码文件供 Nginx 使用: ```bash echo "username:$(openssl passwd password)" >/etc/nginx/user.passwd ``` 这里替换 `username` 和 `password` 为实际使用的用户名和密码[^4]。 #### 编辑 Nginx 配置文件 接下来,在 Nginx 中定义一个新的虚拟主机或修改现有站点配置以启用 WebDAV 协议的支持。以下是典型的配置片段示例: ```nginx server { listen 80; server_name your_domain; location /webdav/ { alias /var/www/webdav/; auth_basic "Restricted Area"; auth_basic_user_file /etc/nginx/user.passwd; client_body_temp_path /tmp; client_max_body_size 1G; dav_methods PUT DELETE MKCOL COPY MOVE; dav_ext_methods PROPFIND OPTIONS LOCK UNLOCK; create_full_put_path on; autoindex on; } } ``` 这段配置指定了 `/webdav/` 路径下的资源可通过 HTTP 方法上传下载,并启用了详细的 DAV 命令集以便更好地兼容各种客户端应用[^1]。 #### 测试与重启 Nginx 保存更改后测试配置的有效性,并重新加载 Nginx 使其生效: ```bash sudo nginx -t sudo systemctl reload nginx ``` 此时应当可以在浏览器或其他支持 WebDAV 的应用程序里尝试访问 http://your_domain/webdav 并执行相应的文件操作了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值