侧边栏壁纸
  • 累计撰写 52 篇文章
  • 累计创建 22 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Nginx 学习笔记

镇沛
2024-10-15 / 0 评论 / 0 点赞 / 24 阅读 / 0 字

引言

Nginx(发音为"engine-x")是一个高性能的Web服务器和反向代理服务器,同时也是一个IMAP/POP3/SMTP邮件代理服务器。由Igor Sysoev在2002年开发,以其高并发处理能力、低内存消耗和稳定性著称,广泛应用于各种大型网站和应用的部署场景中。

本学习笔记旨在帮助初学者快速掌握Nginx的基本概念、安装配置、常见用法及高级特性,适合Web开发者、运维人员以及对Web服务器技术感兴趣的读者参考学习。

一、Nginx简介

1.1 Nginx的特点

  • 高性能:使用事件驱动架构和异步多路复用技术,能够处理大量并发连接。

  • 轻量级:相比其他服务器软件,Nginx占用更少的系统资源。

  • 高可靠性:设计上注重稳定性,即使在高负载下也能保持稳定运行。

  • 反向代理:能够将请求转发给内部网络中的多个服务器,实现负载均衡。

  • 静态内容服务:非常擅长处理静态文件,如图片、CSS、JavaScript等。

  • 模块化设计:通过加载不同的模块,可以扩展其功能,如添加SSL支持、压缩等功能。

1.2 Nginx与Apache对比

虽然Apache是长期以来最流行的Web服务器软件,但Nginx在处理高并发连接时表现更优,特别是在需要处理大量静态内容和作为反向代理时。Apache采用的是进程或线程模型,而Nginx采用事件驱动模型,这使得Nginx在资源效率和处理能力上有显著优势。

二、安装Nginx

2.1 在Linux上安装

Ubuntu/Debian

sudo apt update
sudo apt install nginx

CentOS/RHEL

sudo yum install epel-release
sudo yum install nginx

2.2 启动与停止Nginx

# 启动Nginx
sudo systemctl start nginx

# 停止Nginx
sudo systemctl stop nginx

# 重启Nginx
sudo systemctl restart nginx
# 由于nginx在linux的默认安装位置为/usr/sbin/nginx,上述操作也可以用以下指令

# 启动Nginx
/usr/sbin/nginx

# 停止Nginx
/usr/sbin/nginx -s stop

# 重启Nginx
/usr/sbin/nginx -s reload

三、基本配置

Nginx的主要配置文件位于/etc/nginx/nginx.conf,默认网站的配置文件通常在/etc/nginx/sites-available/default

3.1 配置示例

server {
    listen 80; # 监听端口
    server_name example.com; # 服务器域名或IP

    location / {
        root /var/www/html; # 网站根目录
        index index.html index.htm; # 默认首页
    }
}

3.2 虚拟主机配置

可以通过添加多个server块来配置多个虚拟主机。

server {
    listen 80;
    server_name www.example1.com;
    ...
}

server {
    listen 80;
    server_name www.example2.com;
    ...
}

四、反向代理与负载均衡

4.1 反向代理示例

location /proxy_path {
    proxy_pass http://backend_server; # 后端服务器地址
}

4.2 负载均衡配置

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

server {
    location / {
        proxy_pass http://backend;
    }
}

五、进阶配置与优化

  • SSL/TLS配置:为网站启用HTTPS加密。

  • 缓存设置:通过proxy_cache指令实现内容缓存,提高响应速度。

  • 日志管理:合理配置access_log和error_log,便于问题追踪和分析。

  • 安全加固:限制访问、禁用不安全的HTTP方法等措施。

六、总结

Nginx因其高效、灵活和可扩展性成为现代Web架构中不可或缺的一部分。通过本文档的学习,希望你已经掌握了Nginx的基本安装、配置以及一些高级应用。实践是学习的最佳途径,不断尝试和调整配置,以满足不同场景的需求,将是提升Nginx技能的关键。

0

评论区