在当今互联网时代,CentOS和Nginx作为服务器端技术,被广泛应用于网站搭建和运维中,本文将详细介绍如何在CentOS系统中配置Nginx的虚拟主机(vhost),以便为不同的域名提供服务。

CentOS Nginx Vhost 配置指南
安装Nginx
确保你的CentOS系统中已安装Nginx,如果没有安装,可以通过以下命令进行安装:
sudo yum install nginx
检查Nginx服务状态
安装完成后,可以使用以下命令检查Nginx服务的状态:
sudo systemctl status nginx
如果服务正在运行,你会看到类似以下输出:
nginx.service - High performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2023-04-13 08:00:00 UTC; 4min ago
Docs: man:nginx(8)
Process: 1231 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 1232 (nginx)
CGroup: /system.slice/nginx.service
└─1232 /usr/sbin/nginx -g daemon on; master_process on;
Apr 13 08:00:00 server1 nginx[1232]: time="2023-04-13T08:00:00.000000000+00:00" pid=1232 accept_timestamp=1681372000 duration=0 uss=0 rbytes=0 wbytes=0 request="GET / HTTP/1.1" upstream="-" host="server1.example.com" referrer="-" user_agent="curl/7.68.0" upstream_addr="127.0.0.1:8080" upstream_status="200" upstream_time=0.000 upstream_header_time=0.000 backend_addr="127.0.0.1:8080" backend_status="200" backend_time=0.000 backend_header_time=0.000 配置虚拟主机
Nginx的虚拟主机配置通常位于/etc/nginx/sites-available/目录下,以下是一个基本的虚拟主机配置示例:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
} 在这个配置中:

listen 80;指定Nginx监听80端口。server_name example.com www.example.com;指定虚拟主机的域名。root /var/www/example.com;指定网站内容的根目录。index index.html index.htm;指定默认首页文件。
激活虚拟主机
配置完成后,需要将配置文件链接到/etc/nginx/sites-enabled/目录,并重新加载Nginx配置:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ sudo systemctl reload nginx
验证配置
可以使用以下命令测试Nginx配置是否正确:
sudo nginx -t
如果一切正常,你会看到类似以下输出:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful FAQs
Q1:如何修改Nginx的默认首页文件?
A1: 修改index指令后的文件列表即可,如果你想将默认首页改为index.php,可以将配置中的index index.html index.htm;改为index index.php index.html index.htm;。

Q2:如何配置Nginx以支持HTTPS?
A2: 配置HTTPS需要生成SSL证书,并将证书文件放置在Nginx的配置文件中,以下是一个简单的示例:
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/nginx/ssl/example.crt;
ssl_certificate_key /etc/nginx/ssl/example.key;
root /var/www/example.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
} 请确保你已经生成了有效的SSL证书,并将证书文件放置在指定的路径。

