Ubuntu 安装 Nginx并配置反向代理

news2025/5/13 5:44:55

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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2307515.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

赋能农业数字化转型 雏森科技助力“聚农拼”平台建设

赋能农业数字化转型,雏森科技助力“聚农拼”平台建设 在数字化浪潮席卷各行业的今天,农业领域也在积极探索转型升级之路。中农集团一直以“根植大地,服务三农”为核心,以“乡村振兴,农民增收”为目标,及时…

1. HTTP 数据请求

相关资源: 图片素材📎图片素材.zip 接口文档 1. HTTP 数据请求 什么是HTTP数据请求: (鸿蒙)应用软件可以通过(鸿蒙)系统内置的 http 模块 和 Axios,通过 HTTP 协议和服务器进行通讯 学习核心Http请求技术: Http模块 - 属于鸿…

VSCode轻松调试运行.Net 8.0 Web API项目

1.背景 我一直都是用VS来开发.NetCore项目的,用的比较顺手,也习惯了。看其他技术文章有介绍VS Code更轻量,更方便。所以我专门花时间来使用VS Code,看看它是如何调试代码、如何运行.Net 8.0 WebAPI项目。这篇文章是一个记录的过程…

2024年国赛高教杯数学建模D题反潜航空深弹命中概率问题解题全过程文档及程序

2024年国赛高教杯数学建模 D题 反潜航空深弹命中概率问题 原题再现 应用深水炸弹(简称深弹)反潜,曾是二战时期反潜的重要手段,而随着现代军事技术的发展,鱼雷已成为现代反潜作战的主要武器。但是,在海峡或…

obj离线加载(vue+threejs)+apk方式浏览

demo需求:移动端,实现obj本地离线浏览 结合需求,利用(vue2threejs173)进行obj的加载,然后采用apk方式(hbuilderX打包发布)移动端浏览; https://github.com/bianbian886/…

关于mysql 表中字段存储JSON对象对JSON对象中的bolean字段进行查询的方式

业务场景如题 JSON对象为 表为客诉表中的 发现利用原有的xml中的 and a1.order_list ->‘$[*].isZg’ request.isZg 后续发现需要更改为有效 本文作为自己日常工作记录用,有遇到相同问题的可以作为参考。

Kylin麒麟操作系统 | 系统监控

以下所使用的环境为: 虚拟化软件:VMware Workstation 17 Pro 麒麟系统版本:Kylin-Server-V10-SP3-2403-Release-20240426-x86_64 一、系统状态查询工具 1. 静态显示系统进程信息ps ps命令会生成一个静态列表,列表中显示的进程其…

vLLM服务设置开机自启动(Linux)

要在开机时进入指定的 conda 环境并启动此 vllm 服务,您可以通过以下步骤设置一个 systemd 服务来自动执行脚本。 一、第一步:创建一个启动脚本 1.打开终端并创建启动脚本,例如 /home/username/start_vllm.sh(请替换 username 为…

几个api

几个api 原型链 可以阅读此文 Function instanceof Object // true Object instanceof Function // true Object.prototype.isPrototypeOf(Function) // true Function.prototype.isPrototypeOf(Object) // true Object.__proto__ Function.prototype // true Function.pro…

数字IC后端设计实现OCC(On-chip Clock Controller)电路介绍及时钟树综合案例

数字IC后端时钟树综合专题(OCC电路案例分享) 复杂时钟设计时钟树综合(clock tree synthesis)常见20个典型案例 1、什么是OCC? 片上时钟控制器(On-chip Clock Controllers ,OCC),也称为扫描时钟控制器(Scan Clock Con…

Trae根据原型设计稿生成微信小程序密码输入框的踩坑记录

一、需求描述 最近经常使用Trae生成一些小组件和功能代码(对Trae赶兴趣的可以看之前的文章《TraeAi上手体验》),刚好在用uniapp开发微信小程序时需要开发一个输入密码的弹框组件,于是想用Trae来实现。原型设计稿如下:…

华为AP 4050DN-HD的FIT AP模式改为FAT AP,家用FAT基本配置

在某鱼买了两台华为AP 4050DN-HD , AP是二手的 , 在AC上上过线 , 所以就不能开机自选为FIP模式了 我没有AC无线控制器 , 就是买一个自己玩 , AP又是FIT瘦AP模式 ,所以我就想把AP的瘦AP模式改为FAT胖AP模式 1. 准备工作 1.1下载好对应软件,进入到 企业业务网站去下…

vue3+ts+uniapp+unibest 微信小程序(第二篇)—— 图文详解自定义背景图页面布局、普通页面布局、分页表单页面布局

文章目录 简介一、自定义背景图布局1.1 效果预览1.2 实现思路1.3 custom-page 组件全量代码1.4 页面使用 二、普通页面布局2.1 效果预览2.2 实现思路2.3 公共样式部分2.4 页面使用 三、分页表单页面布局3.1 效果预览3.2 实现思路3.3 页面代码 简介 开发工具:VsCode…

虚拟机缩放比例问题处理

上班打开虚拟机的样子。 最开始判断可能是vmtools 异常重启安装后发现没有效果 通过 xrandr 功能查询显示器信息获取显示器名 设置显示器 同时设置分辨率 也可以同时设置刷新率 注意下图中设置的关键字

【Python 入门基础】—— 人工智能“超级引擎”,AI界的“瑞士军刀”,

欢迎来到ZyyOvO的博客✨,一个关于探索技术的角落,记录学习的点滴📖,分享实用的技巧🛠️,偶尔还有一些奇思妙想💡 本文由ZyyOvO原创✍️,感谢支持❤️!请尊重原创&#x1…

DeepSeek-R1-Zero:基于基础模型的强化学习

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】 文章目录 DeepSeek大模型技术系列四DeepSeek大模型技术系列四》DeepSeek-…

(dp 买入股票的最佳时机)leetcode 121

题目 题解的dp数组 0列是负数&#xff0c;这里我改成正数不再相加而是相减获取利润 class Solution { public:int maxProfit(vector<int>& prices) {int nprices.size();vector<vector<int>>dp(n,vector<int>(2));dp[0][0]prices[0];dp[0][1]0;//0…

由 Mybatis 源码畅谈软件设计(三):简单查询 SQL 执行流程

大家好&#xff0c;我是 方圆。SQL 查询是 Mybatis 中的核心流程&#xff0c;本节我们来介绍简单 SQL 的执行流程&#xff0c;过程会比较长&#xff0c;期间会认识很多重要的组件&#xff0c;比如 SqlSession、四大处理器&#xff08;Executor、StatementHandler、ParameterHan…

项目实践 之 pdf简历的解析和填充(若依+vue3)

文章目录 环境背景最终效果前端讲解左侧模块解析右侧上传模块解析前端步骤 后端讲解代码前端 环境背景 若依前后端分离框架 vue最后边附有代码哦 最终效果 前端讲解 左侧模块解析 1、左侧表单使用el-form 注意&#xff1a; 1、prop出现的字段&#xff0c;需要保证是该类所…

lowagie(itext)老版本手绘PDF,包含页码、水印、图片、复选框、复杂行列合并、行高设置等。

入口类&#xff1a;exportPdf package xcsy.qms.webapi.service;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.common.utils.StringUtils; import com.ibm.icu.text.RuleBasedNumberFormat; import com.lowagie…