nginx改配置文件还是会访问默认nginx欢迎页面排查 + 域名访问

问题:

1. 创建 HTML 页面文件

首先,创建一个简单的 HTML 文件,作为您的前端页面。

文件路径: /var/www/html/index.html (这是 Nginx 默认的根目录,您可以根据需要修改)

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>欢迎访问我的网站</title>
    <style>
        body {
            font-family: 'Arial', 'Microsoft YaHei', sans-serif;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            margin: 0;
            padding: 0;
            min-height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
            color: white;
        }
        .container {
            text-align: center;
            background-color: rgba(255, 255, 255, 0.1);
            padding: 40px;
            border-radius: 15px;
            box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
            backdrop-filter: blur(4px);
            border: 1px solid rgba(255, 255, 255, 0.18);
            max-width: 80%;
        }
        h1 {
            font-size: 3.5em;
            margin-bottom: 20px;
            text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
        }
        p {
            font-size: 1.5em;
            margin-bottom: 30px;
            line-height: 1.6;
        }
        .btn {
            display: inline-block;
            background: linear-gradient(45deg, #ff6b6b, #ee5a24);
            color: white;
            padding: 15px 30px;
            text-decoration: none;
            border-radius: 25px;
            font-weight: bold;
            transition: transform 0.3s, box-shadow 0.3s;
            box-shadow: 0 4px 15px rgba(0,0,0,0.2);
        }
        .btn:hover {
            transform: translateY(-3px);
            box-shadow: 0 6px 20px rgba(0,0,0,0.3);
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>🎉 欢迎访问!</h1>
        <p>这是一个由 Nginx 提供服务的简单前端页面。</p>
        <p>服务器当前时间: <span id="serverTime"></span></p>
        <a href="#" class="btn">了解更多</a>
    </div>
​
    <script>
        // 简单的脚本,显示当前时间(客户端时间)
        function updateClock() {
            const now = new Date();
            document.getElementById('serverTime').textContent = now.toLocaleString();
        }
        updateClock();
        setInterval(updateClock, 1000);
    </script>
</body>
</html>

2. 配置 Nginx

接下来,配置 Nginx 来服务这个页面。

文件路径: /etc/nginx/sites-available/default (Ubuntu/Debian)/etc/nginx/conf.d/default.conf (CentOS/RHEL), 或者直接修改 /etc/nginx/nginx.conf 中的 http 块内的 server 块。

复制代码
# /etc/nginx/sites-available/default 或 /etc/nginx/conf.d/default.conf
html 复制代码
server {
    # 监听 80 端口 (HTTP)
    listen 80;
    # 如果需要监听 443 端口 (HTTPS),需要 SSL 证书
    # listen 443 ssl;
    # server_name your-domain.com; # 如果有域名
​
    # 设置网站根目录
    root /var/www/html;
    # 指定默认索引文件
    index index.html index.htm;
​
    # server_name 指令可以指定域名或 IP 地址
    # 如果没有域名,可以注释掉或使用 IP/localhost
    # server_name example.com www.example.com;
​
    # 处理根路径的请求
    location / {
        # try_files 指令尝试按顺序查找文件
        # $uri 指请求的路径
        # $uri/ 指请求路径作为目录
        # /index.html 作为最后的备选
        try_files $uri $uri/ =404;
    }
​
    # 可选:配置静态资源缓存 (如 CSS, JS, 图片)
    location ~* \.(css|js|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
        expires 1y; # 设置浏览器缓存一年
        add_header Cache-Control "public, immutable";
        # 开启 gzip 压缩可以进一步优化
        # gzip_static on; # 如果文件已压缩 (如 .gz)
    }
​
    # 错误页面配置
    error_page 404 /404.html;
    location = /404.html {
        internal;
    }
​
    # 安全设置 (可选但推荐)
    # 禁止访问 .htaccess 文件
    location ~ /\.ht {
        deny all;
    }
}
​
# 如果您配置了 HTTPS,可以添加如下 server 块 (需要 SSL 证书)
# server {
#     listen 443 ssl;
#     server_name your-domain.com;
#
#     ssl_certificate /path/to/your/certificate.crt;
#     ssl_certificate_key /path/to/your/private.key;
#
#     ssl_protocols TLSv1.2 TLSv1.3;
#     ssl_ciphers HIGH:!aNULL:!MD5;
#
#     root /var/www/html;
#     index index.html;
#
#     location / {
#         try_files $uri $uri/ =404;
#     }
# }

3. 部署步骤

  1. 创建目录和文件:

    复制代码
    sudo mkdir -p /var/www/html
    sudo nano /var/www/html/index.html # 将上面的 HTML 内容粘贴进去
  2. 配置 Nginx:

    • 编辑对应的 Nginx 配置文件(如 /etc/nginx/sites-available/default)。

    • 将上面的 Nginx 配置粘贴进去,根据您的实际情况修改 root 路径和 server_name

    • 如果使用的是 sites-available,确保创建符号链接:

      复制代码
      sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
      # 并移除默认的符号链接(如果存在且不需要)
      # sudo rm /etc/nginx/sites-enabled/default
  3. 测试配置并重启 Nginx:

    html 复制代码
    # 测试 Nginx 配置语法是否正确
    sudo nginx -t
    ​
    # 如果测试通过,重启 Nginx 服务
    sudo systemctl restart nginx
    # 或者 reload (更轻量)
    # sudo systemctl reload nginx
  4. 设置文件权限 (如果需要):

    html 复制代码
    sudo chown -R www-data:www-data /var/www/html/ # Ubuntu/Debian
    # 或
    # sudo chown -R nginx:nginx /var/www/html/     # CentOS/RHEL
    sudo chmod -R 755 /var/www/html/
  5. 访问页面:

    • 在浏览器中输入您的服务器 IP 地址或域名(例如 http://your-server-ip)。

    • 您应该能看到一个带有渐变背景、欢迎文字和动态时间的页面。

配置了还是访问默认nginx欢迎页面


✅ 方案一:直接在 nginx.conf 中添加 server

将您提供的配置文件修改如下,在 http { ... } 的末尾 include /etc/nginx/conf.d/*.conf; 之前 添加 server 块:

html 复制代码
user  nginx;
worker_processes  auto;
​
error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;
​
events {
    worker_connections  1024;
}
​
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
​
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
​
    access_log  /var/log/nginx/access.log  main;
​
    sendfile        on;
    #tcp_nopush     on;
​
    keepalive_timeout  65;
​
    #gzip  on;
​
    # --- 开始添加 server 块 ---
    server {
        listen 80;
        # server_name your-domain.com;  # 如果有域名,替换并取消注释
​
        # 设置网站根目录(存放 index.html 的文件夹)
        root /var/www/html;
        index index.html;
​
        # 处理所有请求
        location / {
            # 尝试匹配文件 -> 目录 -> 最后返回 index.html (适合单页应用)
            try_files $uri $uri/ =404;
            # 如果是单页应用(如 Vue/React),使用下面这行代替上一行:
            # try_files $uri $uri/ /index.html;
        }
​
        # 可选:设置静态资源缓存
        location ~* \.(css|js|png|jpg|jpeg|gif|ico|svg|woff2?|ttf|eot)$ {
            expires 1y;
            add_header Cache-Control "public, immutable";
        }
​
        # 禁止访问隐藏文件,如 .htaccess
        location ~ /\. {
            deny all;
        }
    }
    # --- server 块结束 ---
​
    include /etc/nginx/conf.d/*.conf;
}

✅ 方案二:使用 conf.d 目录(推荐)


📂 确保文件和权限正确

  1. 创建目录并放置页面:

  2. 设置权限:


🔁 重新加载 Nginx

html 复制代码
sudo nginx -t
​#这一步会显示nginx配置的哪个文件
# 重新加载配置(不中断服务)
sudo systemctl reload nginx
复制代码

❓ 为什么设置了还是访问其他网页?

  1. 配置未生效: 您修改的 nginx.conf 可能没有被正确加载,或者您修改的是备份文件。确保您编辑的是实际被 Nginx 加载的配置文件(通常是 /etc/nginx/nginx.conf)。

  2. 存在其他 server 块: 检查 /etc/nginx/conf.d//etc/nginx/sites-enabled/ 目录下是否有其他 .conf 文件也在监听 80 端口。Nginx 会根据 server_name 和请求匹配最合适的 server 块。如果多个 server 块监听同一端口且没有 server_name,Nginx 会使用第一个 定义的 server 块。

  3. 浏览器缓存: 浏览器可能缓存了旧的页面。尝试清除缓存或使用 Ctrl+F5 强制刷新。

  4. 未重启/重载 Nginx: 修改配置后必须重新加载 Nginx 才能生效。

  5. 文件路径错误: 确保 root 指令指向的目录中确实存在 index.html 文件。


✅ 验证

在浏览器中访问 http://<你的服务器IP>,应该看到您 /var/www/html/index.html 中的内容。

通过以上修改,您的 Nginx 就会专门服务于您指定的前端页面了。

4注意事项

  • 防火墙: 确保服务器的防火墙允许 80 (HTTP) 和 443 (HTTPS) 端口的流量。

  • SELinux (CentOS/RHEL): 如果启用了 SELinux,可能需要调整安全上下文 (chcon) 或设置布尔值。

  • 路径: root 指令指定的路径必须与您存放 index.html 的实际路径一致。

  • Nginx 用户: Nginx 进程(通常是 www-datanginx 用户)需要有权限读取 root 目录下的文件。

  • 可以看下日志文件error.log

5注意浏览器缓存,这里我是先看配置文件,确保是之后;把默认文件名字全部重命名了;最后发现是浏览器缓存的问题

6访问成功

相关推荐
星辰云-6 小时前
Nginx笔记
运维·笔记·nginx
前端李二牛9 小时前
现代CSS属性兼容性问题及解决方案
前端·css
未来之窗软件服务9 小时前
internationalization 全球系统风格分享,新加坡,墨西哥,泰国,印度,越南—仙盟创梦IDE
css·css3·收银系统开发·仙盟创梦ide·东方仙盟·全球化布局
典学长编程11 小时前
前端开发(HTML,CSS,VUE,JS)从入门到精通!第五天(jQuery函数库)
javascript·css·ajax·html·jquery
张元清12 小时前
解密苹果最新 Liquid Glass 效果:如何用代码重现 iOS 设计系统的视觉魔法
前端·css·面试
天下无贼12 小时前
【轮播图】H5端轮播图、横向滑动、划屏效果实现方案——Vue3+CSS position
css·vue.js
Likeyou713 小时前
HTML无尽射击小游戏包含源码,纯HTML+CSS+JS
javascript·css·html
前端Hardy13 小时前
这个你一定要知道,如何使用Pandoc创建HTML网页版文档?
前端·javascript·css
前端老鹰13 小时前
CSS scrollbar-width:轻松定制滚动条宽度的隐藏属性
前端·css