在CentOS上配置Nginx以支持多个站点是一个常见的任务。以下是一个基本的示例,展示了如何配置Nginx以支持两个不同的站点。
如果你还没有安装Nginx,可以使用以下命令进行安装:
sudo yum install epel-release
sudo yum install nginx
确保防火墙允许HTTP和HTTPS流量:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
在/etc/nginx/conf.d/
目录下创建两个新的配置文件,例如site1.conf
和site2.conf
。
server {
listen 80;
server_name example1.com www.example1.com;
root /var/www/site1;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
server {
listen 80;
server_name example2.com www.example2.com;
root /var/www/site2;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
在/var/www/
目录下创建两个新的目录,分别用于存放两个站点的文件:
sudo mkdir -p /var/www/site1
sudo mkdir -p /var/www/site2
在每个站点目录中添加一些基本的HTML文件以进行测试。
<!DOCTYPE html>
<html>
<head>
<title>Site 1</title>
</head>
<body>
<h1>Welcome to Site 1</h1>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Site 2</title>
</head>
<body>
<h1>Welcome to Site 2</h1>
</body>
</html>
在重新加载Nginx之前,先测试配置文件是否有语法错误:
sudo nginx -t
如果没有错误,重新加载Nginx以应用新的配置:
sudo systemctl reload nginx
确保你的域名解析(DNS)记录指向你的服务器IP地址。例如:
example1.com
指向服务器IPexample2.com
指向服务器IP打开浏览器并访问 http://example1.com
和 http://example2.com
,你应该能够看到各自的站点内容。
如果你希望为站点启用HTTPS,可以使用Let’s Encrypt免费证书,并使用Certbot来自动化证书的申请和续期过程。
sudo yum install certbot python2-certbot-nginx
sudo certbot --nginx -d example1.com -d www.example1.com
sudo certbot --nginx -d example2.com -d www.example2.com
按照提示完成证书的申请和配置。
通过以上步骤,你应该能够在CentOS上成功配置Nginx以支持多个站点。