当前位置: 首页 > news >正文

Ubuntu 安装 Nginx并配置反向代理

Ubuntu版本:Ubuntu 24.04.2 LTS 


一、安装Nginx

  1. 更新系统软件包
    安装前需确保系统处于最新状态,避免依赖冲突

    sudo apt update && sudo apt upgrade -y
  2. 安装Nginx主程序
    Ubuntu官方仓库已包含稳定版Nginx,直接安装即可

    sudo apt install nginx -y
  3. 验证安装与启动服务

    sudo systemctl start nginx          # 启动服务
    sudo systemctl enable nginx         # 设置开机自启
    sudo systemctl status nginx         # 检查运行状态

    访问http://服务器IP,若显示Nginx欢迎页即安装成功


二、配置反向代理

  1. 创建专用配置文件
    建议在/etc/nginx/sites-available/目录下新建独立配置文件

    sudo nano /etc/nginx/sites-available/reverse-proxy.conf
  2. 编写反向代理规则
    添加以下内容(以代理本地8080端口的服务为例):

    nginx
    server {listen 80;server_name your-domain.com;  # 替换为域名或IPlocation / {proxy_pass http://localhost:8080;  # 后端服务地址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;}
    }

    关键参数说明

    • proxy_pass:后端服务的实际地址(支持IP:端口或域名)
    • proxy_set_header:传递客户端真实信息给后端
  3. 启用配置并测试

    sudo ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/
    sudo nginx -t                  # 检查语法
    sudo systemctl reload nginx    # 热重载配置

三、高级配置(可选)

  1. 负载均衡
    若需代理多个后端服务器,使用upstream模块

    upstream backend {server 192.168.1.10:8080 weight=3;  # 权重分配server 192.168.1.11:8080;least_conn;                          # 最小连接策略
    }server {location / {proxy_pass http://backend;      # 指向upstream组}
    }
  2. HTTPS加密
    通过Let's Encrypt获取免费SSL证书

    sudo apt install certbot python3-certbot-nginx
    sudo certbot --nginx -d your-domain.com

    自动更新证书的定时任务会同步创建。

  3. 性能优化
    nginx.conf中调整全局参数

    http {gzip on;  # 启用压缩proxy_buffers 8 16k;  # 缓冲区优化proxy_connect_timeout 60s;
    }

四、故障排查

  • 日志分析
    tail -f /var/log/nginx/error.log  # 实时查看错误日志
  • 端口占用检查
    sudo lsof -i :80  # 排查端口冲突[6](@ref)
http://www.lryc.cn/news/543592.html

相关文章:

  • GitHub SSH连接问题解决指南
  • C++ 跨平台的 GetCurrentThreadId() 获取当前线程ID实现
  • 钉钉MAKE AI生态大会思考
  • SQL笔记#复杂查询
  • 【Linux】基于UDP/TCP套接字编程与守护进程
  • springboot 引入前端
  • RTSP/Onvif安防平台EasyNVR接入EasyNVS显示服务缺失的原因与解决方案
  • 算法系列之回溯算法
  • Uniapp 小程序接口封装与使用
  • Harmony开发笔记(未完成)
  • 观成科技:海莲花“PerfSpyRAT”木马加密通信分析
  • Spring Boot @Async 注解深度指南
  • windows设置暂停更新时长
  • Orange 开源项目 - 集成百度智能云-千帆大模型
  • 特斯拉 FSD 算法深度剖析:软件层面全解读
  • 2025/2/17--2/23学习笔记(week1)_C语言
  • 数据结构:二叉树的数组结构以及堆的实现详解
  • AWS S3 如何设置公开访问权限?
  • 使用TortoiseGit配合BeyondCompare实现在Git仓库中比对二进制文件
  • 8、HTTP/1.0和HTTP/1.1的区别【高频】
  • Rk3568驱动开发_开发环境的搭建_1
  • Solr中得Core和Collection的作用和关系
  • Visual Studio Code 远程开发方法
  • 如何看到 git 上打 tag 的时间
  • 【HarmonyOS Next】鸿蒙TaskPool和Worker详解 (一)
  • 如何设置HTTPOnly和Secure Cookie标志?
  • 几个api
  • Deepseek本地部署指南:在linux服务器部署,在mac远程web-ui访问
  • 基于 DeepSeek+AutoGen 的智能体协作系统
  • 博客系统笔记总结 2( Linux 相关)