nginx反向代理二级域名怎么绑定

发布时间:2022-04-27 14:21:58 作者:iii
来源:亿速云 阅读:120
# Nginx反向代理二级域名怎么绑定

## 前言

在当今互联网应用中,Nginx作为高性能的Web服务器和反向代理服务器被广泛使用。通过Nginx实现二级域名的反向代理绑定,可以有效管理多个子站点或服务,提升服务器资源利用率。本文将详细介绍如何配置Nginx反向代理来绑定二级域名,涵盖从域名解析到Nginx配置的全过程。

---

## 一、准备工作

### 1.1 域名与DNS解析
- **拥有主域名**:例如`example.com`
- **创建二级域名**:如`sub.example.com`
- **DNS解析设置**:
  ```bash
  # 在域名管理后台添加A记录
  sub.example.com -> 服务器IP地址

建议TTL设置为较短时间(如300秒)便于测试

1.2 服务器环境要求


二、基础配置流程

2.1 创建Nginx配置文件

# /etc/nginx/conf.d/sub.example.com.conf
server {
    listen 80;
    server_name sub.example.com;
    
    location / {
        proxy_pass http://localhost:3000; # 被代理服务地址
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

2.2 关键参数说明

参数 作用 示例值
server_name 指定匹配的域名 sub.example.com
proxy_pass 后端服务地址 http://127.0.0.1:8080
proxy_set_header 传递原始请求头 Host $host

2.3 测试并重载配置

sudo nginx -t  # 测试配置语法
sudo systemctl reload nginx  # 平滑重载

三、高级配置方案

3.1 HTTPS加密配置

server {
    listen 443 ssl;
    server_name sub.example.com;
    
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    
    location / {
        proxy_pass http://backend;
        proxy_ssl_server_name on;
    }
}

# HTTP强制跳转HTTPS
server {
    listen 80;
    server_name sub.example.com;
    return 301 https://$host$request_uri;
}

3.2 负载均衡配置

upstream backend {
    server 192.168.1.10:8000;
    server 192.168.1.11:8000;
    keepalive 32;
}

server {
    location / {
        proxy_pass http://backend;
        proxy_http_version 1.1;
    }
}

3.3 WebSocket代理

location /ws/ {
    proxy_pass http://backend;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

四、常见问题排查

4.1 502 Bad Gateway

可能原因: 1. 后端服务未运行 2. 防火墙阻止连接 3. 代理地址配置错误

解决方案

curl -v http://backend:port  # 测试后端连通性
sudo ufw allow 8000/tcp     # 放行端口

4.2 域名解析失败

4.3 SSL证书问题


五、性能优化建议

5.1 缓存静态资源

location ~* \.(jpg|css|js)$ {
    proxy_cache my_cache;
    proxy_cache_valid 200 1d;
    expires 7d;
}

5.2 连接池优化

proxy_http_version 1.1;
proxy_set_header Connection "";
keepalive_timeout 75s;

5.3 缓冲区配置

proxy_buffers 16 32k;
proxy_buffer_size 64k;
proxy_busy_buffers_size 128k;

六、实际应用案例

6.1 多服务代理方案

app1.example.com → 3000端口(Node.js)
app2.example.com → 8080端口(Tomcat)
static.example.com → /var/www/static

6.2 微服务架构代理

location /api/user/ {
    proxy_pass http://user-service:8001/;
}

location /api/order/ {
    proxy_pass http://order-service:8002/;
}

结语

通过本文的详细指导,您应该已经掌握了Nginx反向代理绑定二级域名的核心方法。关键点包括: 1. 正确的DNS解析配置 2. Nginx server块的精准匹配 3. 代理头信息的完整传递 4. HTTPS的安全实现

建议在生产环境部署前进行充分测试,并使用CI/CD工具管理配置版本。更多高级用法可参考Nginx官方文档

附录:常用命令速查

# 查看Nginx错误日志
tail -f /var/log/nginx/error.log

# 测试特定域名的响应
curl -H "Host: sub.example.com" http://服务器IP

”`

推荐阅读:
  1. Nginx 配置反向代理
  2. nginx怎样实现反向代理?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

nginx

上一篇:Nginx+Tomcat高性能负载均衡集群怎么搭建

下一篇:怎么使用nginx缓存服务器上的静态文件

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》