温馨提示×

ubuntu nginx虚拟主机搭建步骤

小樊
55
2025-10-02 07:56:27
栏目: 云计算

Ubuntu系统搭建Nginx虚拟主机详细步骤

1. 安装Nginx

首先更新系统软件包列表,确保获取最新版本信息,然后通过APT包管理器安装Nginx:

sudo apt update
sudo apt install nginx -y

安装完成后,Nginx会自动启动。可通过以下命令验证服务状态:

sudo systemctl status nginx

若显示“active (running)”,则表示安装成功。

2. 配置防火墙(可选但推荐)

若系统启用了UFW(Uncomplicated Firewall),需允许HTTP(80端口)和HTTPS(443端口)流量,确保外部能访问网站:

sudo ufw allow 'Nginx Full'

验证防火墙规则是否生效:

sudo ufw status

输出中应包含“Nginx Full”相关的允许规则。

3. 创建网站根目录

为虚拟主机创建专用的网站根目录,用于存放HTML、CSS等网站文件。建议将目录放在/var/www/下,并以域名命名(如example.com):

sudo mkdir -p /var/www/example.com/html

设置目录所有者为www-data(Nginx默认运行用户),并赋予755权限,确保Nginx进程可读写:

sudo chown -R www-data:www-data /var/www/example.com
sudo chmod -R 755 /var/www

4. 创建虚拟主机配置文件

Nginx的虚拟主机配置文件存放在/etc/nginx/sites-available/目录下,需在此创建对应域名的配置文件(如example.com.conf):

sudo nano /etc/nginx/sites-available/example.com.conf

编辑配置文件,添加以下基础内容(按需修改server_nameroot路径):

server {
    listen 80;
    server_name example.com www.example.com;  # 替换为你的域名
    root /var/www/example.com/html;           # 网站根目录
    index index.html index.htm;               # 默认首页文件

    location / {
        try_files $uri $uri/ =404;            # 尝试匹配请求文件,未找到则返回404
    }

    # 可选:自定义错误页面
    error_page 404 /404.html;
    location = /404.html {
        root /var/www/example.com/html;
    }
}

保存并退出编辑器(Ctrl+O保存,Ctrl+X退出)。

5. 启用虚拟主机

通过创建符号链接,将sites-available目录下的配置文件链接到sites-enabled目录(Nginx启动时会加载该目录下的所有配置):

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

注意:若之前有测试用的配置文件,建议删除或禁用(如sudo rm /etc/nginx/sites-enabled/default),避免冲突。

6. 测试并重载Nginx

在重新加载Nginx前,必须测试配置文件语法是否正确,避免因配置错误导致服务中断:

sudo nginx -t

若输出“configuration file /etc/nginx/nginx.conf test is successful”,则表示配置无误。接着重载Nginx以应用更改:

sudo systemctl reload nginx

7. 创建测试页面

在网站根目录下创建index.html文件,用于验证虚拟主机是否正常工作:

sudo nano /var/www/example.com/html/index.html

添加简单的HTML内容(如“Welcome to Example.com”),保存后退出:

<!DOCTYPE html>
<html>
<head>
    <title>Welcome to Example.com</title>
</head>
<body>
    <h1>Hello, World!</h1>
    <p>This is a test page for Nginx virtual host.</p>
</body>
</html>

8. 配置DNS(可选但必要)

若要通过域名访问网站,需将域名解析到服务器的公网IP地址。登录域名注册商的管理面板,添加一条A记录

  • 主机名@(代表根域名)或www(代表www.example.com
  • 记录类型A
  • :服务器公网IP地址(如123.45.67.89
    保存后等待DNS生效(通常需要几分钟到几小时)。

9. 验证访问

打开浏览器,输入域名(如http://example.com),若看到测试页面,则表示虚拟主机搭建成功。也可通过curl命令在终端验证:

curl -v http://example.com

若输出中包含“Welcome to Example.com”,则说明配置正确。

10. 可选:配置HTTPS(加密访问)

若需为网站启用HTTPS(推荐),可使用Let’s Encrypt提供的免费SSL证书。首先安装Certbot工具:

sudo apt install certbot python3-certbot-nginx -y

然后运行Certbot命令,自动获取并配置证书:

sudo certbot --nginx -d example.com -d www.example.com

按照提示完成配置(如选择“Redirect to HTTPS”以强制加密访问),Certbot会自动修改Nginx配置文件并重载服务。验证HTTPS访问:

curl -v https://example.com

若输出中包含“SSL certificate verify ok”,则表示HTTPS配置成功。

0