Nginx是一个高性能的开源Web服务器,同时也可以作为反向代理服务器、负载均衡器和HTTP缓存等多种用途。

什么是Nginx

Nginx是一款轻量级、高性能的Web服务器软件,由俄罗斯的程序员Igor Sysoev开发。Nginx以其卓越的性能和稳定性而闻名,被广泛应用于互联网公司的服务器架构中。与传统的Apache服务器相比,Nginx在处理高并发连接时表现更为出色。

如何安装Nginx

Ubuntu系统安装Nginx

在Ubuntu系统上,可以通过以下命令安装Nginx:

sudo apt update
sudo apt install nginx

安装完成后,可以使用以下命令启动Nginx服务:

sudo systemctl start nginx

CentOS系统安装Nginx

在CentOS系统上,可以通过以下命令安装Nginx:

sudo yum install nginx

安装完成后,可以使用以下命令启动Nginx服务:

sudo systemctl start nginx

Nginx配置文件

Nginx的主要配置文件位于/etc/nginx/nginx.conf,你可以通过编辑这个文件来配置Nginx的各种参数和行为。另外,Nginx还支持使用include指令引入其他配置文件,方便管理和维护。

以下是一个简单的Nginx配置示例:

# 静态网站配置
server {
    listen 80;
    server_name example.com www.example.com;

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

# HTTPS配置
server {
    listen 443 ssl;
    server_name example.com www.example.com;

    ssl_certificate /etc/nginx/ssl/certificate.crt;
    ssl_certificate_key /etc/nginx/ssl/private.key;

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

# 反向代理配置
server {
    listen 80;
    server_name api.example.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

# 负载均衡配置
upstream backend_servers {
    server backend1.example.com;
    server backend2.example.com;
}

server {
    listen 80;
    server_name app.example.com;

    location / {
        proxy_pass http://backend_servers;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Nginx常用命令

启动Nginx

sudo systemctl start nginx

停止Nginx

sudo systemctl stop nginx

重启Nginx

sudo systemctl restart nginx

热重启Nginx更新配置文件

nginx -s reload

注意,只有当没有长连接时热重启更新配置文件才会成功