MST

星途 面试题库

面试题:网络编程之Nginx基础配置

请描述如何在Nginx中配置一个简单的反向代理,将请求转发到后端的Tomcat服务器,假设Tomcat服务器运行在本地8080端口。同时说明这样配置反向代理的好处。
35.3万 热度难度
后端开发网络编程

知识考点

AI 面试

面试题答案

一键面试

1. Nginx 配置反向代理到本地 Tomcat 8080 端口

在 Nginx 的配置文件(一般在 /etc/nginx/sites-available/ 下,假设文件名为 default)中添加如下配置:

server {
    listen 80;
    server_name your_domain.com; # 替换为你的域名,如果是 IP 访问,可以写 IP

    location / {
        proxy_pass http://127.0.0.1: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;
    }
}

然后确保该配置文件软链接到 /etc/nginx/sites-enabled/ 目录下,重启 Nginx 服务:

sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
sudo systemctl restart nginx

2. 配置反向代理的好处

  • 隐藏后端服务器信息:客户端只知道 Nginx 的存在,不知道后端真实的 Tomcat 服务器地址和端口,提高了后端服务器的安全性。
  • 负载均衡:可以通过配置多个 proxy_pass 指向不同的 Tomcat 服务器实例,实现请求的负载均衡,提高应用的并发处理能力。
  • 缓存功能:Nginx 可以对静态资源进行缓存,减少后端 Tomcat 服务器的压力,提高响应速度。
  • 请求过滤和安全防护:Nginx 可以配置各种规则对请求进行过滤,如防止恶意请求、限制请求频率等,增强应用的安全性。