温馨提示×

centos lnmp如何设置域名解析

小樊
31
2025-12-15 18:09:04
栏目: 云计算

CentOS LNMP 域名解析与 Nginx 配置

一、整体思路

  • 在域名注册商或云解析控制台添加 DNS 记录(如 A 记录 指向服务器公网 IP),让域名可解析到服务器。
  • 在服务器上配置 Nginx 虚拟主机,用 server_name 绑定你的域名,并指向网站根目录。
  • 打开防火墙 80/443 端口,重载 Nginx,测试访问。若需加密访问,可进一步配置 HTTPS/SSL

二、步骤一 配置 DNS 解析

  • 添加记录(示例)
    • 记录类型:A
    • 主机记录:@(根域)与 www(常见)
    • 记录值:你的服务器公网 IPv4
    • TTL:默认或按需(如 600 秒)
  • 如需通配子域,可添加:
    • 记录类型:CNAME
    • 主机记录:*
    • 记录值:@ 或你的主域名(如 example.com)
  • 生效时间
    • 解析修改通常需要 数分钟到数小时 全球生效,常见为 ~10 分钟;可用命令行测试是否指向正确 IP。
  • 常用测试
    • nslookup example.com
    • dig example.com A +short
    • ping example.com(可能被禁 ping,仅作连通性参考)

三、步骤二 配置 Nginx 虚拟主机

  • 新建站点配置(推荐拆分到 /etc/nginx/conf.d/)
    • 示例:sudo vim /etc/nginx/conf.d/example.com.conf
  • 配置示例(HTTP)
    • example.comwww.example.com 都指向同一站点目录
    • /var/www/example.com 替换为你的实际网站目录
    • 确认 PHP-FPM 监听方式与路径与系统一致(常见为 /run/php-fpm/www.sock127.0.0.1:9000
server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    # 根据实际的 PHP-FPM 监听方式二选一
    # 1) Unix socket(常见于 CentOS 的 php-fpm 包)
    location ~ \.php$ {
        include        fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_pass   unix:/run/php-fpm/www.sock;
    }

    # 2) TCP 端口(如 127.0.0.1:9000)
    # location ~ \.php$ {
    #     include        fastcgi_params;
    #     fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    #     fastcgi_pass   127.0.0.1:9000;
    # }

    location ~ /\.ht {
        deny all;
    }
}
  • 创建目录与权限
    • sudo mkdir -p /var/www/example.com
    • sudo chown -R nginx:nginx /var/www/example.com
    • sudo chmod -R 755 /var/www/example.com
  • 检查并重载 Nginx
    • sudo nginx -t
    • sudo systemctl reload nginx
  • 可选:多站点
    • 为不同域名分别创建 server { server_name xxx; root … } 的配置文件,放在 /etc/nginx/conf.d/ 下并分别重载 Nginx。

四、步骤三 防火墙与 HTTPS

  • 防火墙放行
    • sudo firewall-cmd --permanent --zone=public --add-service=http
    • sudo firewall-cmd --permanent --zone=public --add-service=https
    • sudo firewall-cmd --reload
  • 申请并配置免费 SSL(Let’s Encrypt/certbot)
    • 安装:sudo yum install certbot python2-certbot-nginx
    • 签发并自动配置 Nginx:sudo certbot --nginx -d example.com -d www.example.com
    • 按提示选择是否重定向 HTTP→HTTPS,证书到期可自动续期。

五、快速验证与常见问题

  • 验证清单
    • DNS 是否正确:nslookup/ping 返回你的服务器 IP
    • 端口是否开放:sudo firewall-cmd --list-ports 应包含 80/tcp 与(配置后)443/tcp
    • Nginx 是否生效:sudo nginx -t 无报错;访问 http://example.com 显示站点内容
    • PHP 是否正常:创建 /var/www/example.com/index.php,内容为
  • 常见问题
    • 解析未生效:等待 TTL 过期;检查是否为 A 记录 且值正确;用 nslookup/dig 复核
    • 访问被拒绝或超时:检查云服务器安全组/本机防火墙是否放行 80/443
    • Nginx 启动失败:执行 nginx -t 定位语法或路径错误;查看 /var/log/nginx/error.log
    • 国内服务器访问异常:域名需完成 ICP 备案 后再上线使用。

0