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

一、背景

当我的应用程序需要集群化部署之时,必然需要一个反向代理,当然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台服务器中

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JAVA】Long类型返回到前端,精度丢失

一. 问题阐述 20位long类型的数字&#xff0c;从后端接口返回到前端后【四舍五入】 MYSQL端 &#xff08;1&#xff09;bigint (20) &#xff08;2&#xff09;具体某一条数据 JAVA端 &#xff08;1&#xff09;实体类 &#xff08;2&#xff09;服务类 &#xff08;3&…

传统企业要实现数字化转型,需要从哪些方面入手?

数字化转型是一个综合过程&#xff0c;涉及利用数字技术从根本上改变企业运营方式并为客户提供价值。希望踏上数字化转型之旅的传统企业应考虑几个关键方面&#xff0c;以确保成功、平稳过渡。以下是一些需要开始的基本方面&#xff1a; 1.领导承诺&#xff1a; 自上而下的支…

idea Statistic使用

问题描述&#xff1a;本地idea版本为2018.3.5&#xff0c;安装Statistic插件后没有出现Statistic图标 原因如下&#xff1a;插件版本太新了&#xff0c;需要历史版本 解决办法&#xff1a; IDEA安装代码统计插件Statistic后左下角图标出不来(亲测)_idea statistic不展示-CSD…

20240130在ubuntu20.04.6下卸载NVIDIA显卡的驱动

20240130在ubuntu20.04.6下卸载NVIDIA显卡的驱动 2024/1/30 12:58 缘起&#xff0c;为了在ubuntu20.4.6下使用whisper&#xff0c;以前用的是GTX1080M&#xff0c;装了535的驱动。 现在在PDD拼多多上了入手了一张二手的GTX1080&#xff0c;需要将安装最新的545的驱动程序&#…

老网工秒懂的行业“黑话”,你对齐颗粒度了吗?

你们好&#xff0c;我的网工朋友。 年关将至&#xff0c;多少网工朋友放假了&#xff1f;学技术的心是不是都飘走了。 快过年了&#xff0c;准备和大家聊点有趣、轻松的话题。 前两天部门团建&#xff0c;大家一起去看了年会不能停&#xff0c;挺有意思。 互联网黑话那是一…

解析Kubernets pod DNS域名

k8s dns理解 这个博主讲的很详细 我的这篇文章主要是演示测试 k8s的dns nslookup怎么解析到k8spod域名 创建一个busybox的pod&#xff0c;测试一下pod内是否可以解析 1、流程验证 cat >dns-Deployment.yaml<<EOF apiVersion: apps/v1 kind: Deployment metadata:nam…

PLC找出数据队列里的最大数和最小数所在序号(完整SCL代码)

对于一些需要根据累计运行时间智能启泵和停泵的应用场景,可能会用到此算法,在学习本算法之前,我们需要了解如何在一组数据队列里找出最大数和最小数(这里不涉及排序,只要找到最大数和最小数)。 最大数和最小数搜索FC 请参考下面文章链接: https://rxxw-control.blog.csd…

java+springboot企业员工工作日志审批管理系统ssm+vue

企业OA管理系统具有管理员角色&#xff0c;用户角色&#xff0c;这两个操作权限。 ①管理员 管理员在企业OA管理系统里面查看并管理人事信息&#xff0c;工作审批信息&#xff0c;部门信息&#xff0c;通知公告信息以及内部邮件信息。 管理员功能结构图如下&#xff1a; ide工具…

服务器部署geoserver

linux 进入服务器&#xff0c;创建geoserver文件夹并且解压压缩包 cd /opt mkdir geoserver unzip geoserver-2.19.x-2023-09-22-bin.zip编辑start.ini文件&#xff0c;将port更改为自己的端口 进入bin目录&#xff0c;执行命令包 cd /opt/geoserver/bin ./startup.sh 浏览器…

GoLang和GoLand的安装和配置

1. GoLang 1.1 特点介绍 Go 语言保证了既能达到静态编译语言的安全和性能&#xff0c;又达到了动态语言开发维护的高效率&#xff0c;使用一个表达式来形容 Go 语言&#xff1a;Go C Python , 说明 Go 语言既有 C 静态语言程序的运行速度&#xff0c;又能达到 Python 动态语…

SpringBoot集成MongoDB(3)|(MongoTemplate的List操作)

SpringBoot集成MongoDB&#xff08;3&#xff09;|&#xff08;MongoTemplate的List操作&#xff09; 文章目录 SpringBoot集成MongoDB&#xff08;3&#xff09;|&#xff08;MongoTemplate的List操作&#xff09;[TOC] 前言一、场景说明一、向数组字段添加元素二、从数组中删…

Kube-Promethus配置Nacos监控

Kube-Promethus配置Nacos监控 前置&#xff1a;Kube-Promethus安装监控k8s集群 一.判断Nacos开启监控配置 首先通过集群内部任一节点访问Nacos的这个地址<NacosIP>:端口号/nacos/actuator/prometheus&#xff0c;查看是否能够获取监控数据。 如果没有数据则修改Nacos集群…

【数据结构 02】队列

一、原理 队列通常是链表结构&#xff0c;只允许在一端进行数据插入&#xff0c;在另一端进行数据删除。 队列的特性是链式存储&#xff08;随机增删&#xff09;和先进先出&#xff08;FIFO&#xff1a;First In First Out&#xff09;。 队列的缺陷&#xff1a; 不支持随机…

[Python] 什么是集成算法,什么是随机森林?随机森林分类器(RandomForestClassifier)及其使用案例

什么是集成算法&#xff1f; 集成算法是一种机器学习方法&#xff0c;它将多个基本的学习算法&#xff08;也称为弱学习器&#xff09;组合在一起&#xff0c;形成一个更强大的预测模型。集成算法通过对基本模型的预测进行加权平均或多数投票等方式&#xff0c;来产生最终的预…

蓝桥OJ 3695聪明的小羊肖恩

思路&#xff1a;这道题利用二分和不等式的性质。1<i<j<n且L<a[i] a[j] < R > L - a[i] < a[j] < R - a[i]。遍历找出大于等于L - a[i] 和 大于 R - a[i] 的区间&#xff0c;区间长度即为当前i对应的下标对数。所有对数累加即为满足条件的下标对数量。…

elk之基础概念

写在前面 本文一起看下es的基础概念&#xff0c;比较枯燥的内容说&#xff0c;但不看又不行。开始。 1&#xff1a;document 文档&#xff0c;是es搜索存储数据的最小单元&#xff0c;相当于是MySQL的一行记录&#xff0c;但es中是一个json&#xff0c;如下是一个通过logsta…

ARDUINO 与ISP下载器使用相关注意事项

当用isp给arduno下载程序之后&#xff0c;板子上的bootloader将会丢失&#xff0c;所以要重新烧录bootloader&#xff0c;既然要烧录bootloader&#xff0c;那么什么是bootloader呢&#xff1f;正如你所想&#xff0c;bootloader当然是一个程序&#xff0c;既然要烧录到单片机中…

正则表达式补充以及sed

正则表达式&#xff1a; 下划线算 在单词里面 解释一下过程&#xff1a; 在第二行hello world当中&#xff0c;hello中的h 与后面第一个h相匹配&#xff0c;所以hello中的ello可以和abcde匹配 在world中&#xff0c;w先匹配h匹配不上&#xff0c;则在看0&#xff0c;r&#…

【新书推荐】4.2节 字符编码规则

本节内容&#xff1a;字符编码规则。 ■字符编码规则&#xff1a;ASCII码、ANSI字符集、Unicode字符集。 ■变形国标码&#xff1a;国标码是16位编码&#xff0c;高8位表示汉字符的区号&#xff0c;低8位表示汉字符的位号。 4.2.1 字符编码规则 计算机只能存储二进制数0和1&a…

麒麟系统安装minio_centos8.0安装最新minio_离线安装minio并设置权限_创建桶---minio工作笔记001

https://www.minio.org.cn/?id=18&id=3&id=0&id=11&id=9&spinz=qianfeng&adinfo678=baidu&spinz=qianfeng&adinfo678=baidu%3E 首先去到官网去下载minio,然后 可以看到已经显示的官网,然后再去,右边点击下载 进入下载页面一般都是amd64的版本…