HTTP服务器:Nginx可以作为独立的Web服务器来托管网站和应用程序。

反向代理服务器:它可以将客户端请求转发给后端服务器,并将响应返回给客户端,从而实现负载均衡和提高系统的可用性。

负载均衡:通过在多个后端服务器之间分配流量,确保系统能够处理大量并发请求。

静态内容服务:Nginx擅长快速提供静态文件(如HTML页面、图片、CSS和JavaScript文件)。

缓存:支持对动态和静态内容进行缓存,以减少后端服务器的负载并加快响应速度。

SSL/TLS终止:可以处理SSL/TLS加密和解密,减轻后端服务器的负担,并提高安全性。

邮件代理:虽然较少使用,但Nginx也可以配置为邮件代理服务器。

原理

Nginx采用了事件驱动(event-driven)和异步非阻塞I/O模型,这使得它能够在处理大量并发连接时保持高效性能。以下是其核心机制的一些关键点:

事件驱动架构:Nginx使用一个主进程管理多个工作进程。每个工作进程负责监听网络事件,并在事件发生时处理请求。

异步非阻塞I/O:Nginx不会为每个连接创建新的进程或线程,而是使用异步I/O操作,这意味着它可以同时处理成千上万的并发连接。

模块化设计:Nginx的核心功能相对简单,大部分功能是通过模块实现的。这些模块可以根据需要加载或卸载,提供了高度的灵活性。

部署

#安装Nginx服务器

apt-get -y install nginx
#启动
systemctl start nginx

#移除默认站点配置
sudo rm -f /etc/nginx/sites-enabled/*
#写入配置文件 
sudo tee /etc/nginx/conf.d/default.conf <<-'EOF'
server {
    listen       80;
    server_name  localhost;
    root /usr/share/nginx/html;
    location / {
            index index.php index.html index.htm;
    }
    location ~ .php$ {
            root /usr/share/nginx/html;
            fastcgi_pass <listen>;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
EOF

sudo vi /etc/nginx/conf.d/default.conf
#修改root /usr/share/nginx/html/;
root /var/www/html/
#重启
sudo systemctl restart nginx


#无法转跳网页
sudo vi /etc/nginx/nginx.conf
#在location /大括号内,添加如下代码
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
#重启
sudo systemctl restart nginx
#默认网站根目录:
Nginx: /usr/share/nginx/html
Apache: /var/www/html

Nginx的日志文件默认存放在/var/log/nginx/。
Nginx的主配置文件默认/etc/nginx/nginx.conf。
Nginx默认读取/etc/nginx/conf.d目录下所有以.conf为后缀的附加配置文件

SSL

登录数字证书管理服务控制台

在左侧导航栏,选择证书管理 > SSL证书管理

在个人测试证书(原免费证书)页签,单击立即购买

在立即购买面板,保持默认选项,仔细阅读并勾选服务协议,单击立即购买并完成支付