找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

210

积分

0

好友

26

主题
发表于 前天 21:55 | 查看: 4| 回复: 0

本文将详细介绍在 Ubuntu 和 CentOS 两大主流 Linux 发行版上安装与配置 Nginx 的方法,涵盖服务管理、配置文件定位、防火墙端口配置,并演示如何将 Nginx 与 Tomcat 服务器集成以实现负载均衡。

Ubuntu 系统安装 Nginx

在 Ubuntu 系统中,Nginx 软件包位于默认的软件仓库中,安装过程非常简便。

首先,更新本地软件包索引:

sudo apt update

随后,执行安装命令:

sudo apt install nginx

安装完成后,可以通过以下命令验证 Nginx 版本,确认安装成功:

nginx -v

Nginx 服务管理

安装后,可以使用 systemctl 命令来管理 Nginx 服务:

  • 启动 Nginx 服务
    sudo systemctl start nginx
  • 重新加载配置(不中断服务)
    sudo systemctl reload nginx
  • 停止 Nginx 服务
    sudo systemctl stop nginx
  • 检查 Nginx 进程是否运行
    ps -aux | grep nginx

测试访问与配置文件定位

服务启动后,可通过浏览器访问 http://<服务器IP>(默认使用80端口)来测试 Nginx 是否正常工作。

若需修改默认端口等配置,需要找到 Nginx 的主配置文件 nginx.conf。可以通过以下方式定位:

  1. 查找 Nginx 主进程路径,其所在目录通常是安装目录。

    ps -ef | grep nginx

    返回结果中类似 nginx: master process /usr/sbin/nginx 的路径即为 Nginx 主程序位置。

  2. 查找配置文件路径,使用 -t 测试命令会显示主配置文件的路径。

    sudo nginx -t

    输出通常会显示:nginx: configuration file /etc/nginx/nginx.conf syntax is ok,这里的 /etc/nginx/nginx.conf 就是主配置文件。

CentOS 系统安装 Nginx

在 CentOS 系统上,建议添加 Nginx 官方源进行安装,以获得较新的稳定版本。

  1. 添加 Nginx 官方 Yum 源:
    rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
  2. 通过 Yum 安装 Nginx:
    sudo yum install -y nginx

安装后,使用 whereis nginx 命令可以查看到 Nginx 相关的所有路径,其中 /etc/nginx 为核心配置目录。

进入该目录,查看 nginx.conf 文件,你会发现它采用了模块化配置的方式,通过 include 指令引入了 /etc/nginx/conf.d/ 目录下的其他配置文件。这种结构在 Linux 运维/DevOps 实践中非常常见,便于管理。

Nginx安装与配置详解:Ubuntu与CentOS双系统指南,集成Tomcat与解决80端口访问 - 图片 - 1
CentOS 下 nginx.conf 主配置文件通常会引用其他目录的配置

进入 /etc/nginx/conf.d/ 目录,可以看到默认的服务器配置 default.conf,在这里可以清晰地配置服务器监听的端口、地址、网站根目录(root)以及默认首页等关键参数。

Nginx安装与配置详解:Ubuntu与CentOS双系统指南,集成Tomcat与解决80端口访问 - 图片 - 2
conf.d 目录下的配置文件,用于设置端口、服务器名、根目录等

在 CentOS 中,可以直接使用 Nginx 二进制文件管理服务:

  • nginx:启动 Nginx
  • nginx -s stop:立即停止 Nginx
  • nginx -s quit:优雅停止(处理完当前请求后停止)

如需卸载,可执行:

sudo yum remove nginx

解决 CentOS 下无法访问 80 端口问题

在 CentOS 系统中,防火墙默认会阻止外部对 80 端口的访问。你需要配置防火墙规则以放行该端口。

  1. 检查防火墙状态:
    sudo firewall-cmd --state

    如果未运行,需先启动防火墙:

    sudo systemctl start firewalld
  2. 查看当前已开放的端口:
    sudo firewall-cmd --list-ports
  3. 永久性添加 80 端口(TCP协议)到防火墙规则:
    sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
  4. 重新加载防火墙配置,使规则立即生效:
    sudo firewall-cmd --reload

    执行完上述步骤后,外部网络通常就能正常访问服务器的 80 端口了。

Nginx 与 Tomcat 集成实现负载均衡

Nginx 常作为反向代理服务器,与后端的 Java 应用服务器(如 Tomcat)集成,实现请求分发和负载均衡。

假设我们有两个 Tomcat 实例,分别运行在 80808081 端口,Nginx 监听 80 端口。架构如下图所示:

Nginx安装与配置详解:Ubuntu与CentOS双系统指南,集成Tomcat与解决80端口访问 - 图片 - 3
Nginx 作为反向代理,将请求分发给后端的多个 Tomcat 实例

操作步骤:

  1. 分别启动两个 Tomcat 服务器(进入各自的 bin 目录):
    ./startup.sh
  2. 配置 Nginx。编辑 Nginx 的配置文件(例如 /etc/nginx/conf.d/upstream.conf 或直接在 nginx.confhttp 块中添加),定义一个上游服务器组(upstream)并配置代理规则。

    http {
        # 定义名为 tomcat_cluster 的服务器组
        upstream tomcat_cluster {
            server 127.0.0.1:8080;
            server 127.0.0.1:8081;
        }
    
        server {
            listen 80;
            server_name localhost;
    
            location / {
                # 将所有请求代理到 tomcat_cluster 服务器组
                proxy_pass http://tomcat_cluster;
                # 可选:设置一些代理头信息
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
            }
        }
    }
  3. 检查配置语法并重新加载 Nginx:
    sudo nginx -t  # 测试配置文件语法
    sudo nginx -s reload  # 或 systemctl reload nginx (Ubuntu) / nginx -s reload (CentOS直接运行)

配置完成后,访问 Nginx 的 80 端口,请求会被 Nginx 按照默认的轮询(round-robin)策略随机分发到后端的 Tomcat1(8080端口)或 Tomcat2(8081端口),从而初步实现负载均衡。更多高级策略(如权重、IP哈希等)可以在 upstream 模块中进行配置,这属于 数据库/中间件 性能调优的范畴。




上一篇:Git常用命令全解析:掌握核心操作与高效团队协作流程
下一篇:RenderCV:程序员简历用 YAML 写?这个开源工具解决了我的大麻烦
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 17:10 , Processed in 0.224178 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表