Centos7安装原生Nginx并配置反向代理

news2024/12/29 9:59:40

一、背景

当我的应用程序需要集群化部署之时,必然需要一个反向代理,当然Nginx的大名,这里不做更多的介绍了,这里介绍一下Nginx常用的四大阵营

1 Ngnix 原生版本

nginx news

2 Nginx Plus 商用版(收费的)

Advanced Load Balancer, Web Server, & Reverse Proxy - NGINX

3 Nginx  OpenResty 版本

OpenResty® - 开源官方站

4 Tengine 淘宝开源版本

The Tengine Web Server

下面开始我们的安装之路

二、安装

1 下载

打开官网的下载页面: nginx: download

这里我们选择一个稳定的版本点击下载,注意我将部署到Centos中,不要下载成Window版本了

下载之后,上传到虚拟机的/usr/local 目录下

解压 tar zxf nginx-1.24.0.tar.gz

2 安装

进入nginx-1.24.0目录,然后执行./configure 

缺少C语言编译器,需要安装C语言编译器(如果已经安装的可以跳过)

yum install -y gcc

此时再执行安装命令,安装目录为/usr/local/nginx

./configure --prefix=/usr/local/nginx

执行会报下面错误

./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.

原因是缺少PCRE依赖,下面安装PCRE库

yum install -y pcre pcre-devel

继续执行,可能仍然会报下面这个这个错误

./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.

原因是缺少zlib 依赖,继续安装zlib 库

yum install -y zlib zlib-devel

安装依赖完成后再执行,应该不会再报错了

./configure --prefix=/usr/local/nginx

在执行make

make

make install

执行完成,我们可以看到/usr/local 目录下多了nginx目录

3 启动

进入到nginx目录下,执行 sbin/nginx

然后打开http://192.168.31.110/

这里的IP地址为虚拟机的地址,正常情况下,应该能看到下面页面,如果不行的话,建议检查一下防火墙是否没有关闭

4  nginx 常用命名

./nginx   启动

./nginx -s stop   快速停止

./nginx -s quit    优雅关闭

./nginx -s reload   重新加载配置

5 安装成系统服务

创建服务脚本

vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

先关闭原来已经启动的nginx

./sbin/nginx -s stop

重新加载系统服务

systemctl daemon-reload

systemctl start nginx

systemctl status nginx

6 设置开机启动

这里的前提是完成了第5步,执行下面命令

systemctl enable nginx.service

到这里我们的nginx安装就算完成了

三、配置反向代理

1 准备2台后端服务器实例

这里我使用之前开发好的,一个应用,分别部署到192.168.31.102:9527,192.168.31.32:9527 这两台服务器上,两个服务都有一个获取商品详情的接口,一会我就用这个接口测试一下Nginx配置是否正确

测试用的接口代码

@GetMapping("/getGoodsDetails")
public GoodsInfo getGoodsDetails(@RequestParam(value = "goodsId") Long goodsId) {
    log.info("getGoodsDetails goodsId: {}", goodsId);
    return goodsInfoMapper.selectByPrimaryKey(goodsId);
}

2 修改nginx/conf/nginx.conf

# 这里是我2台服务器应用的地址  

  upstream httpds {
        server 192.168.31.102:9527;

        server 192.168.31.32:9527;
    }

# 从根目录代理

   location / {
         proxy_pass http://httpds;
   }

重新加载配置文件

systemctl reload nginx

3 测试一下

测试结果:成功的反向代理到预定的2台服务器中

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

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

相关文章

STM32——USART

一、通信 1.1通信是什么&#xff1b; 通信是将一个设备的数据发送到另一个设备中&#xff0c;从而实现硬件的扩展&#xff1b; 1.2通信的目的是什么&#xff1b; 实现硬件的扩展-在STM32中集成了很多功能&#xff0c;例如PWM输出&#xff0c;AD采集&#xff0c;定时器等&am…

使用AKStream对接gb28181

优点&#xff1a;功能比较多&#xff0c;C#开发的&#xff0c;容易修改&#xff0c;内嵌入了zlmk流媒体服务品&#xff0c;启动简单 缺点&#xff1a;sip对摄像头兼容还有问题&#xff0c;大华接入非常不稳定&#xff0c;注册等待时间久&#xff0c;对海康是正常&#xff0c;占…

Unity_颜色空间GammaLinear

Unity_颜色空间Gamma&Linear Unity颜色空间的选择对于效果的影响具体有多大&#xff1f; 在ProjectSetting -> Player -> OtherSetting -> Rendering设置下的颜色空间选项卡选择颜色空间进行设置&#xff1a; 太深奥的解释一时半会看不懂&#xff0c;找见一个粗…

正则表达式与文本三剑客

目录 一、正则表达式 1. 定义 2. 字符匹配 3. 重复限定符 4. 位置锚点 5. 分组和引用 6. 扩展正则表达式 二、文本三剑客 1. grep 1.1 定义 1.2 语法 1.3 选项 1.4 示例 2. sed 2.1 定义 2.2 通式 2.3 选项 2.4 脚本格式&#xff08;脚本语法&#xff09; 2.…

###C语言程序设计-----C语言学习(8)## 斐波那契数列问题,素数问题,人数分配问题。

前言&#xff1a;感谢您的关注哦&#xff0c;我会持续更新编程相关知识&#xff0c;愿您在这里有所收获。如果有任何问题&#xff0c;欢迎沟通交流&#xff01;期待与您在学习编程的道路上共同进步。 今天&#xff0c;我们主要分享三个问题如何用C语言去求解&#xff0c;1.斐波…

京东平台数据哪里找?京东行业大盘数据(销售数据)查询软件推荐

电商时代&#xff0c;对于电商运营者来说&#xff0c;数据分析是提升竞争力、满足客户需求、保持盈利能力的关键手段。且随着电商的成熟及电商数据量的增长&#xff0c;数据分析的重要性也会越来越重要。 而在做数据分析时&#xff0c;运营者需要着重关注以下几组数据&#xf…

CISAW和CISP-PTE证书选择指南

&#x1f4e3;在信息安全领域&#xff0c;选择合适的证书可以为你的职业生涯增添光彩。很多从事信息渗透行业的朋友经常讨论CISP-PTE和CISAW之间的选择问题。今天就从4个方面带你详细了解这两张证书&#xff0c;帮你做出明智的选择&#xff01; 1️⃣证书的行业前景 &#x1f4…

8. 实现VLAN间的通信

文章目录 一. 初识VLAN通信1.1. VLAN的概述1.2. Dot1q 终结子接口(单臂路由 )1.3. VLANIF接口 二. 实验专题2.1. 实验1&#xff1a; Dotlq 终结子接口2.1.1. 实验目的2.1.2. 实验拓扑图2.1.3. 实验步骤&#xff08;1&#xff09;配置PC机的网络&#xff08;2&#xff09;交换机…

智能小程序事件系统——SJS响应事件实现方案

背景信息 如有频繁用户交互&#xff0c;在小程序上表现是比较卡顿的。例如&#xff0c;页面有 2 个元素 A 和 B&#xff0c;用户在 A 上做 touchmove 手势&#xff0c;要求 B 也跟随移动&#xff0c;movable-view 就是一个典型的例子。一次 touchmove 事件的响应过程为&#x…

java+springboot校园体育场地预约预订使用系统vue+ssm

研究内容和研究方法 1.研究内容 网站主要包括管理员和用户两个部分&#xff0c;用户可以登录与注册自己的基本信息、查询哪些场地可以使用、提前预约场地、取消预约的场地、使用完场地后进行缴费。管理员可以审批用户的注册信息、对用户信息进行增删改查、查询场地的使用情况、…

5G智慧钢铁厂数字孪生三维可视化,推进钢铁新型工业化数字化转型

5G智慧钢铁厂数字孪生三维可视化&#xff0c;推进钢铁新型工业化数字化转型。随着科技的不断发展&#xff0c;数字化转型已经成为钢铁企业转型升级的必经之路。而5G技术的广泛应用&#xff0c;为钢铁企业数字化转型提供了新的机遇。其中&#xff0c;5G智慧钢铁厂数字孪生三维可…

基于ssm和微信小程序的健身房私教预约管理系统

文章目录 项目介绍主要功能截图&#xff1a;部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;超级无敌暴龙战士塔塔开 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &…

计算机设计大赛 垃圾邮件(短信)分类算法实现 机器学习 深度学习

文章目录 0 前言2 垃圾短信/邮件 分类算法 原理2.1 常用的分类器 - 贝叶斯分类器 3 数据集介绍4 数据预处理5 特征提取6 训练分类器7 综合测试结果8 其他模型方法9 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 垃圾邮件(短信)分类算…

亚马逊、eBay、速卖通等跨境电商自养号测评,你知道多少?

在跨境电商领域&#xff0c;自养号测评已经成为常态。大部分卖家都会进行店铺产品的测评&#xff0c;尽管平台和消费者对此持反感态度。但在竞争激烈的环境下&#xff0c;不进行测评就意味着可能被市场淘汰。 过去&#xff0c;在某些论坛上&#xff0c;我曾看到一些博主分享他…

java代码中调用自定义函数

定义函数 CREATE DEFINERrootlocalhost FUNCTION test_fun1(num1 FLOAT,num2 FLOAT) RETURNS float BEGINDECLARE SUM FLOAT DEFAULT 0;SET SUMnum1num2;RETURN SUM; END <select id"cunchu" resultType"java.util.Map">SELECT test_fun1(1,2) as r…

React通用后台模板

一. 项目初始化 1. 创建项目 环境 npm init vite 打开package.json,参考以下各模块版本: "dependencies": { "react": "^18.2.0", "react-dom": "^18.2.0", "react-redux": "^7.2.8", …

Python学习从0到1 day10 Python数据容器.1.列表

我一直相信 ——24.1.27 一、数据容器的定义 1.Python中的数据容器&#xff1a; 一种可以容纳多份数据的数据类型&#xff0c;容纳的每一份数据称之为1个元素&#xff0c;每一个元素&#xff0c;可以是任意类型的数据&#xff0c;如字符串、数字、布尔等 2.数据容器的分类 数据…

[docker] Docker容器服务更新与发现之consul

一、consul的相关知识 1.1 什么是注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的&#xff0c;不保障高可用性&#xff0c;也不考虑服务的压力承载&#xff0c;服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构&#…

第十四届蓝桥杯大赛软件赛省赛(C/C++ 大学B组)题解

尝试再做一次&#xff0c;我记得还是有点难&#xff0c;我会尽量多写一点解析&#xff0c;尽量让基础比较弱的友友也能看懂&#xff0c;希望能给你带来帮助 目录 1. 日期统计 题目描述 解题思路 具体代码 2. 01 串的熵 题目描述 解题思路 具体代码 3. 冶炼金属 题目…

性价比高的蓝牙运动耳机推荐,公认好用的运动耳机品牌推荐

​随着人们对健康的重视&#xff0c;越来越多的人选择加入运动行列。然而&#xff0c;独自运动可能会让人感到乏味&#xff0c;因此许多人在运动时都会选择佩戴运动耳机&#xff0c;让音乐伴随整个运动过程。那么&#xff0c;如何挑选适合自己的运动耳机呢&#xff1f;今天我为…