Nginx的配置

Nginx 是一个高性能的 Web 服务器和反向代理服务器,广泛用于提高网站性能和安全性。Nginx 安装非常的简单,配置文件 非常简洁(还能够支持 perl 语法),Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到 7 * 24 不间断运行,即使运行数个月也不需要重新启动。你还能够在 不间断服务的情况下进行软件版本的升级。它使用一个主配置文件(通常称为nginx.conf)以及一系列辅助配置文件来管理其行为。

主要功能

  • HTTP服务器:提供静态文件服务。
  • 反向代理:将请求转发到后端服务器,实现负载均衡。
  • 负载均衡:根据不同的算法分发请求,提高系统性能。
  • 动静分离:分离静态和动态内容,提高网站解析速度。

特点

  • 高性能:支持高达50,000个并发连接数,适合高负载场景。
  • 轻量级:占用内存少,启动极快。
  • 跨平台:支持Linux、Windows等多种操作系统。
  • 高可用性:支持热部署,能够7 * 24小时不间断运行。
  • 丰富的功能:包括静态文件服务、反向代理、负载均衡等。

应用场景

  • 静态内容服务:用于部署图片、CSS、HTML等静态资源。
  • 反向代理服务器:作为统一入口或代理入口,进行服务转发。
  • 负载均衡器:在多个服务器之间分配流量,提高性能和可用性。

反向代理器:

反向代理器是一种位于客户端和原始服务器之间的服务器,它接收客户端的请求并将其转发给内部网络上的服务器,同时将服务器的响应返回给客户端。反向代理器的主要作用是隐藏原始服务器的真实IP地址,提高安全性,并通过负载均衡和缓存优化性能。

正向代理器:

正向代理器是一种位于客户端和互联网之间的服务器,其主要作用是帮助客户端访问外部服务器,同时提供隐私保护和绕过访问限制等功能。

并行和并发

并行和并发是计算机科学中两个重要的概念,它们描述了多任务执行的两种不同方式。

  • 并发:指在同一时间段内,多个任务可以交替执行,使得每个任务都有机会向前进展。这在单核处理器上通过时间片轮转技术实现,让用户感觉多个任务在同时执行。
  • 并行:指在同一时刻有多个任务真正同时执行,这需要多核处理器或多台计算机的支持。每个任务在不同的核心上独立执行,互不干扰。

并行和并发的区别

  • 并发:是逻辑上的同时发生,多个任务在同一时间段内交替执行。
  • 并行:是物理上的同时发生,多个任务在同一时刻真正同时执行。

并行和并发的优缺点

  • 并发的优点:提高系统的响应性和资源利用率,特别是在I/O密集型任务中。
  • 并发的缺点:需要频繁的上下文切换,可能导致性能下降。
  • 并行的优点:显著提高计算速度,特别是在多核处理器上。
  • 并行的缺点:需要更高的硬件支持,并且并行编程更复杂,需要解决同步和通信等问题。

安装

在Xshell上使用源码安装nginx

在nginx官网上下载nginx-1.26.2tar.gz,

然后把下载好的nginx-1.26.2tar.gz放到Xshell里面,输入tar xzvf nginx-1.26.2把文件解压。

下载pcre和zlib压缩包:解压zlib压缩包,直接./configure,会生成许多文件,有makefile,直接make(编译),然后make install(安装),prec也是一样的步骤。配置安装路径:./configure --prefix=/test/bin(/test/bin是已建好的文件夹),然后make&make install。在/test/bin./sbin/nginx

zlib-1.3.1

pcre-8.45

主要配置文件nginx.conf

nginx.conf 是 Nginx 的主配置文件,它位于 /etc/nginx/(在Debian/Ubuntu系统中)或 /usr/local/nginx/conf/(在其他系统中)。这个文件定义了 Nginx 的全局配置,包括工作进程数、日志文件位置、事件处理模型等。

基本结构

user nginx;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}

 全局块

user nginx;
worker_processes auto;
pid /run/nginx.pid;
  • user nginx;:指定Nginx运行的用户和组。
  • worker_processes auto;:自动设置工作进程的数量,通常等于CPU核心数。
  • pid /run/nginx.pid;:指定PID文件的路径,用于管理Nginx进程。

events块

events {
    worker_connections 1024;
}

worker_connections 1024;:每个工作进程可以同时打开的最大连接数。

http块

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}
  • include /etc/nginx/mime.types;:包含MIME类型配置文件。
  • default_type application/octet-stream;:默认MIME类型。
  • sendfile on;:启用sendfile,提高文件传输效率。
  • tcp_nopush on;:启用TCP_NOPUSH选项,优化数据包发送。
  • tcp_nodelay on;:启用TCP_NODELAY选项,减少延迟。
  • keepalive_timeout 65;:保持连接的超时时间。
  • types_hash_max_size 2048;:类型哈希表的最大大小。

server块

通常在/etc/nginx/sites-enabled/目录下的配置文件中定义具体的虚拟主机。

server {
    listen 80;
    server_name example.com;

    location / {
        root /var/www/html;
        index index.html index.htm;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /var/www/html;
    }
}

listen 80;:监听80端口。
server_name example.com;:指定服务器名称。
location / { ... }:定义根路径的处理规则。
error_page :定义错误页面。

location

在Nginx配置中,location块用于定义如何处理不同URL路径的请求。它可以与server块一起使用,以指定特定于URL的配置。

location路径的不同写法优先级:

  1. 最高优先级= :表示路径完全等于。
  2. 第二高 ^~ :表示startasWith
  3. 第三高~、~*、!~、!~*:
  • ~:正则匹配,表示正则,如果要用 {} 是特殊符号,需要整个加引号,建议直接加双引号,防止出错
  • ~*:不区分大小写正则
  • !~:正则不匹配的
  • !~*:不分大小写的正则不匹配

最低没有前置符号:不符合上面三种,就会匹配到这。

辅助配置文件

Nginx还可以包含其他辅助配置文件。这些文件通常位于 /etc/nginx/conf.d/(在Debian/Ubuntu系统中)或 /usr/local/nginx/conf/(在其他系统中)。辅助配置文件可以包含特定于站点或应用程序的配置,以便于管理和维护。

辅助配置文件的语法与主配置文件相同,可以包含 server、location等块。例如,以下是一个简单的辅助配置文件,用于设置一个名为 example.com 的站点:

server {
    listen       80;
    server_name  example.com;

    root /var/www/example.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

在这个例子中,我们定义了一个新的虚拟服务器,它监听80端口,并响应 example.com 的请求。站点的根目录设置为 /var/www/example.com,默认索引文件为 index.html。我们还定义了一个 location 块,用于处理所有对根路径的请求。

重载配置文件

在Nginx中,重载配置文件是指在不重启Nginx服务的情况下,使新的配置文件生效。这通常用于在修改配置文件后,快速应用更改,而无需中断正在处理的请求。

1.使用nginx -s reload命令

这是最常用的方法。通过发送reload信号给Nginx主进程,Nginx会重新读取配置文件,并尝试应用新的配置。

nginx -s reload

这个命令会执行以下步骤:

  1. 检查新的配置文件是否有语法错误。
  2. 如果配置文件无误,Nginx会启动新的工作进程,并逐渐将旧的工作进程替换为新进程。
  3. 在整个过程中,Nginx会保持服务的连续性,不会中断正在处理的请求。

2.使用systemctl reload nginx命令(适用于使用systemctl管理Nginx的系统)

systemctl reload nginx

这个命令会调用nginx -s reload,实现相同的效果。

3.使用service nginx reload命令(适用于使用service管理Nginx的系统)

service nginx reload

这个命令同样会调用nginx -s reload,实现相同的效果。

nginx常用指令及作用

  • 启动Nginx:使用默认配置启动,命令为./nginx。如果需要指定配置文件启动,可以使用-c参数,如./nginx -c /path/to/nginx.conf。
  • 停止Nginx:优雅停止使用./nginx -s quit,暴力停止使用./nginx -s stop。
  • 重新加载配置文件:使用./nginx -s reload命令,使修改后的配置生效,而无需重启Nginx。
  • 查看Nginx版本:执行./nginx -v命令,显示Nginx的版本号。
  • 检查配置文件:使用./nginx -t命令来测试配置文件的正确性。
  • 查看Nginx进程:使用ps aux | grep nginx命令来查看Nginx的进程信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值