Nginx简单介绍
Nginx(发音为 “Engine-X”)是一款高性能的 HTTP 和反向代理服务器,同时也可以作为一个负载均衡器、HTTP 缓存以及邮件代理服务器。它最初由 Igor Sysoev 开发,并于 2004 年发布,主要用于高性能的网站服务。现在,Nginx 被广泛用于各种规模的 Web 应用和服务,尤其在高流量、需要高并发的场景中表现优异。
反向代理是服务器端的中间代理,代理服务器代表 服务器端 向客户端提供服务。反向代理将客户端请求转发到多个内部服务器处理,客户端无法直接访问到后端服务器。反向代理的主要作用是 隐藏服务器的真实身份,并 进行负载均衡、缓存、SSL 终结等优化。
1.下载使用:
官网下载(最好下载stable版本,如果有需要legacy版本请自行斟酌
),解压启动nginx.exe即可
2.无法启动:
(1)确保安装路径无中文
(2)确保端口没有被占用
(3)前面如果都排除了,查看安装包logs目录下的error.log查看问题
3.配置文件(前后端分离)
(1)应用场景:
将前端(Nginx 管理)放到了 服务器 A,后端放到了 服务器 B。需要修改 Nginx 配置文件,以便正确地代理请求到服务器 B。
(2)conf文件需要修改的部分:
主要涉及以下几个部分:
-
修改
server
配置中的proxy_pass
地址:
需要将反向代理的proxy_pass
地址修改为指向服务器 B 的后端服务,而不是127.0.0.1
或其他本地地址。 -
确保
listen
和server_name
配置正确:
需要确保 Nginx 在服务器 A 上正确监听端口,并且能够处理来自客户端的请求。
修改后的 Nginx 配置:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/json;
sendfile on;
keepalive_timeout 65;
server {
listen 8080; # 服务器 A 监听 8080 端口
server_name localhost; # 根据需要修改为你的域名或 IP 地址
# 前端静态文件配置
location / {
root /path/to/frontend/directory; # 修改为前端项目在服务器 A 上的路径(这是NGINX相对路径,一般写html)
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /path/to/error/page; # 错误页面路径
}
# 反向代理到后端服务器 B(假设后端服务在服务器 B 上运行)
location /api {
default_type application/json;
keepalive_timeout 30s;
keepalive_requests 1000;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_next_upstream error timeout;
# 修改为指向服务器 B 的后端地址
proxy_pass http://<服务器B的IP>:<后端端口>; # 修改为服务器 B 的实际 IP 和端口,例如 http://192.168.1.2:8081
# 如果后端地址使用域名,可以使用:
# proxy_pass http://backend; # 配置一个 upstream 来定义服务器 B 的负载均衡等
}
}
# 后端服务器 B 配置(如果需要多个后端服务器,可以在这里定义负载均衡)
upstream backend {
server <服务器B的IP>:<后端端口>; # 可以列出多个后端服务器进行负载均衡
#server <服务器B的IP>:<后端端口2>;
#server <服务器C的IP>:<后端端口>;
}
}
(3)其他问题:
确保服务器 B 的防火墙和网络设置允许从服务器 A 访问
需要确认服务器 A 和服务器 B 之间的网络连接没有被防火墙阻挡,尤其是确保服务器 B 上的 8081 端口是开放的,并允许来自服务器 A 的访问。
配置跨域请求(如果需要)
前端和后端分别部署在不同的服务器上,可能会遇到跨域问题。
确认后端服务是否正确配置(如反向代理)
确保后端服务的配置也支持跨服务器请求。后端服务应正确处理请求头,特别是 X-Forwarded-For 和 X-Forwarded-Proto,这些头通常由 Nginx 作为反向代理传递给后端服务。你可以在后端服务器的代码中查看是否需要处理这些头信息。
检查日志
在配置好后,检查 Nginx 和后端服务器的日志文件,确保请求顺利从服务器 A 转发到服务器 B,并且没有发生错误。