Nginx 是一款高性能的开源 Web 服务器软件

文章推荐

1 作为程序员,开发用过最好用的AI工具有哪些?
2 Github Copilot正版的激活成功,终于可以chat了
3 idea,pycharm等的ai assistant已成功激活
4 新手如何拿捏 Github Copilot AI助手,帮助你提高写代码效率
5 Jetbrains的ai assistant已经激活成功,好用!

文章正文

Nginx 是一款高性能的开源 Web 服务器软件,它也可以用作反向代理服务器、负载均衡器和 HTTP 缓存等。以下是一个详细的 Nginx 教程,涵盖了 Nginx 的安装、基本配置、常用功能和性能优化等方面。

1. 安装 Nginx

Ubuntu / Debian:
bash 复制代码
sudo apt update
sudo apt install nginx
CentOS / RHEL:
bash 复制代码
sudo yum install epel-release
sudo yum install nginx
启动 Nginx 服务:
bash 复制代码
sudo systemctl start nginx
设置 Nginx 开机启动:
bash 复制代码
sudo systemctl enable nginx

2. 基本配置

Nginx 的主要配置文件是 /etc/nginx/nginx.conf。下面是一个简单的 Nginx 配置示例:

nginx 复制代码
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    server {
        listen 80;
        server_name example.com;
        root /var/www/html;
        
        location / {
            try_files $uri $uri/ =404;
        }
    }
}

3. 虚拟主机配置

Nginx 支持虚拟主机配置,可以用来托管多个网站。

nginx 复制代码
http {
    server {
        listen 80;
        server_name example.com;
        root /var/www/example.com;

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

    server {
        listen 80;
        server_name anotherdomain.com;
        root /var/www/anotherdomain.com;

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

4. 反向代理配置

Nginx 可以用作反向代理服务器,将请求转发给后端服务器。

nginx 复制代码
http {
    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend_server;
        }
    }
}

5. 负载均衡配置

Nginx 可以用来实现负载均衡,将请求分发给多个后端服务器。

nginx 复制代码
http {
    upstream backend_servers {
        server backend1.example.com;
        server backend2.example.com;
    }

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend_servers;
        }
    }
}

6. HTTPS 配置

Nginx 可以配置 HTTPS,提供加密连接和安全传输。

nginx 复制代码
server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;

    location / {
        proxy_pass http://backend_server;
    }
}

7. HTTP 缓存配置

Nginx 支持 HTTP 缓存,可以提高网站的性能。

nginx 复制代码
http {
    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_cache cache_zone;
            proxy_cache_valid 200 1h;
            proxy_cache_key $request_uri;
            proxy_pass http://backend_server;
        }
    }
}

8. 日志配置

Nginx 可以配置访问日志和错误日志。

nginx 复制代码
http {
    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;
    error_log   /var/log/nginx/error.log;
}

9. 安全配置

Nginx 可以配置安全相关的设置,如限制请求速率、禁止访问敏感目录等。

nginx 复制代码
http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

    server {
        location / {
            limit_req zone=one burst=5;
            deny /admin;
        }
    }
}

10. 性能优化

Nginx 可以进行性能优化,如调整 worker_processes、worker_connections 和 keepalive_timeout 等参数。

nginx 复制代码
worker_processes  auto;
worker_connections  1024;
keepalive_timeout  65;

这些是 Nginx 的基础教程,覆盖了安装、基本配置、常用功能和性能优化等方面。随着你的使用和学习深入,你可以进一步探索 Nginx 的高级功能和更复杂的配置。

相关推荐
骇客野人9 小时前
基于Nginx+Eureka+Apollo+Jenkins+SpringBoot Web系统分布式部署方案
nginx·eureka·jenkins
Kendra9191 天前
从 0 到上线:单文件网页 App 部署到阿里云 ECS 全流程(Nginx+Node+PM2+PostgreSQL)
nginx·阿里云·云计算·部署·个人开发·今天吃什么
暖核1 天前
Nginx 从入门到实践:部署、配置、反向代理与负载均衡全解
运维·nginx·负载均衡
.柒宇.1 天前
运维常见面试题_04_Nginx与DNS服务
运维·nginx·面试·dns
NGINX开源社区1 天前
NGINX Ingress Controller 5.5:安全性与性能提升,迁移更轻松
java·服务器·nginx
weixin_307779131 天前
PHP 大文件上传:内存占用、超时与最佳实践
linux·服务器·开发语言·nginx·php
闲云野鹤在人间1 天前
项目实战:LNMP-电商平台-ECshop
linux·运维·nginx·apache·lvs
暖核1 天前
Keepalived 高可用全解析:从 VRRP 原理到生产环境 Nginx 主备切换实践
网络·nginx·智能路由器
SatanII2 天前
403 禁地:Nginx 拒绝所有生者进入
运维·nginx
xianyuCcCcCCCcc2 天前
Nginx 深度解析:从基础架构到反向代理与负载均衡实战全解
linux·运维·nginx·bash·负载均衡