当前位置: 首页 > 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;  # 替换为域名或IP
    
        location / {
            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)

相关文章:

  • 工作中遇到的设计模式整理
  • Uniapp 小程序接口封装与使用
  • 使用 Postman 访问 Keycloak 端点
  • 强化学习演进:GRPO 从何而来
  • 数组总结【代码随想录】
  • Docker数据卷操作实战
  • centos22.04 dpkg -l 输出状态标识含义
  • HTTP非流式请求 vs HTTP流式请求
  • 金融行业专题|某基金公司基于超融合信创平台支持人大金仓数据库的性能评测
  • 深入解析Tomcat目录结构
  • Grok 3 vs. DeepSeek vs. ChatGPT:2025终极AI对决
  • 【MATLAB中的图像数据结构】
  • 【奥卡姆剃刀原理-如何理解云计算和边缘计算 关键字摘取】
  • MATLAB下载安装教程(附安装包)2025最新版(MATLAB R2024b)
  • 网络安全之日志审计 网络安全审计制度
  • 山东大学软件学院ai导论实验之生成对抗网络
  • 【Python爬虫(71)】用Python爬虫解锁教育数据的奥秘
  • obj离线加载(vue+threejs)+apk方式浏览
  • DDNS-GO 动态域名解析
  • 基于YOLO11深度学习的医学X光骨折检测与语音提示系统【python源码+Pyqt5界面+数据集+训练代码】
  • 第五届全国医院人文管理路演在昆山举办:患者体验才是温度计
  • 伊朗港口爆炸已致46人死亡
  • 见证上海援藏30年成果,萨迦非遗珍品展来沪
  • CSR周刊:李宁打造世界地球日特别活动,珀莱雅发布2024年度可持续发展报告
  • 因高颜值走红的女通缉犯出狱后当主播自称“改邪归正”,账号已被封
  • “爱泼斯坦案”关键证人弗吉尼亚·朱弗雷自杀身亡