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

在 CentOS 7 上安装Nginx和配置http代理

1. 安装 EPEL 仓库

NGINX 不在 CentOS 的默认仓库中,因此首先需要安装 EPEL(Extra Packages for Enterprise Linux) 仓库。

sudo yum install epel-release

  

2. 安装 NGINX

通过 yum 包管理工具安装 NGINX。

sudo yum install nginx

  

3. 启动 NGINX 服务

sudo systemctl start nginx

  

4. 设置 NGINX 开机自启

 如果你希望 NGINX 在系统启动时自动启动,使用以下命令设置开机自启:

sudo systemctl enable nginx

  

5. 防火墙配置

如果CentOS 7 上启用了 firewalld 防火墙,需要允许 HTTP 和 HTTPS 流量通过。

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

  

6. 验证安装

通过访问服务器的 IP 地址或域名来验证 NGINX 是否成功运行:

  • 在浏览器中输入 http://<your-server-ip>,如果你看到 NGINX 默认页面,则安装成功。

7. 检查 NGINX 服务状态

sudo systemctl status nginx

  

8. 停止或重启 NGINX

sudo systemctl stop nginx        #停止NGINX服务
sudo systemctl restart nginx     #重启NGINX服务

  

 9. 调整配置(可选)

NGINX 的配置文件位于 /etc/nginx/nginx.conf,你可以根据需要进行编辑。默认的 Web 根目录是 /usr/share/nginx/html,你可以根据需要将文件放置在该目录下。

编辑配置文件:

sudo vi /etc/nginx/nginx.conf

如果修改了配置文件,记得重新加载 NGINX 配置:

sudo systemctl reload nginx

  

配置反向代理

假设你要将来自客户端的请求代理到运行在 localhost:8080 上的应用服务器。你可以按照以下步骤配置 NGINX 作为反向代理。

1.编辑 NGINX 配置文件

打开默认的配置文件 nginx.conf 或者为特定站点创建一个新的配置文件:

sudo vi /etc/nginx/nginx.conf

  或者,也可以在 /etc/nginx/conf.d/ 目录下创建一个新的配置文件,比如 myproxy.conf

2.配置反向代理

在配置文件中,使用 proxy_pass 指令将客户端请求转发到后端服务器。例如,如果你想将请求代理到运行在 localhost:8080 上的服务,可以像下面这样设置:

server {listen 80;server_name example.com;  # 你的网站域名location / {proxy_pass http://localhost:8080;  # 将请求转发到 localhost:8080proxy_set_header Host $host;  # 保持原始的 Host 头部proxy_set_header X-Real-IP $remote_addr;  # 客户端的真实 IPproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  # 用于获取客户端的真实 IP 地址proxy_set_header X-Forwarded-Proto $scheme;  # 保持请求协议(http/https)}
}
  • proxy_pass: 用于设置目标后端服务地址,可以是 http://https:// 协议。

  • proxy_set_header: 将一些必要的头部信息传递给后端服务器,确保后端服务可以正确地识别客户端信息。

3.检查 NGINX 配置是否正确

sudo nginx -t

  

4.重启 NGINX

如果没有错误,你可以重启 NGINX 服务以使配置生效:

curl http://example.com

  

5. 测试反向代理

现在,所有访问 http://example.com 的请求都将被转发到 localhost:8080。你可以通过浏览器或者 curl 命令来测试:

curl http://example.com

如果一切配置正确,你应该会看到后端服务器的响应。

 

反向代理的常见应用

    1. 负载均衡
      NGINX 可以作为负载均衡器,将请求分发到多个后端服务器。例如:

      upstream backend {server backend1.example.com;server backend2.example.com;server backend3.example.com;
      }server {location / {proxy_pass http://backend;  # 将请求代理到 upstream 定义的服务器}
      }
      

        

    2. SSL 终止
      NGINX 可以处理 SSL/TLS 加密和解密,将加密流量转发到后端服务器,后端服务器只需要处理 HTTP 请求。配置 SSL 终止的例子:

      server {listen 443 ssl;server_name example.com;ssl_certificate /path/to/cert.pem;ssl_certificate_key /path/to/key.pem;location / {proxy_pass http://localhost:8080;  # 将解密后的请求转发到后端}
      }
      

        

    3. 缓存
      反向代理还可以用于缓存静态内容(如图片、CSS、JS 文件等),提高性能和响应速度。

    4. 安全性
      反向代理可以隐藏后端服务器的 IP 地址,增强安全性,防止外部直接访问后端服务。

http://www.hskmm.com/?act=detail&tid=7470

相关文章:

  • 题解:P2624 [HNOI2008] 明明的烦恼
  • 在AI技术快速实现创想的时代,挖掘新需求成为核心竞争力——某知名DevOps学习平台需求洞察
  • Windows Powershell 获取版本version
  • XXL-JOB (1)
  • 记录---Vue3对接UE,通过MQTT完成通讯
  • 《Real-Time Rendering》第一章 介绍
  • C语言基础
  • 公益站Agent Router注册送200刀额度竟然是真的
  • 数据集中valid的作用
  • 深入 RocketMQ 核心源码:从环境搭建到高可用设计的全方位解析
  • 单例模式
  • apache修改默认位置
  • 实用指南:YOLOv11的旋转目标检测改进-(扩展检测头支持旋转框预测,适配遥感场景)
  • 从零到顶会:NLP科研实战手册 - 实践
  • 肝不好能喝酒吗
  • ROS中如何将日志格式设置为行号的形式
  • USB相关的sysfs文件(重要的)【转】
  • 25上第一周
  • 深入解析:RxJava在Android中的应用
  • 模型选择与配置说明
  • 梯度下降算法
  • 002_文本分类任务的问答
  • 车牌识别
  • 告别人工标注瓶颈!Reward-RAG:用 CriticGPT 打造更懂人类偏好的检索模型
  • Latex 中百分号怎么打
  • 文件上传-条件竞争绕过
  • 文件包含漏洞
  • 9.17 CSP-S模拟23/多校A层冲刺NOIP2024模拟赛19 改题记录
  • Java基本语法
  • 在AI技术快速实现创想的时代,挖掘前端学习新需求成为关键——某知名编程教育平台需求洞察