蓝桉云顶

Good Luck To You!

如何配置CentOS上的Nginx以支持虚拟主机?

centos nginx 虚拟主机是一种在 centos 操作系统上使用 nginx 作为 web 服务器来托管多个网站的配置方式。通过设置服务器块(server block),可以在单个 nginx 实例中为不同的域名或 IP 地址提供独立的网站服务。

CentOS 7 下 Nginx 虚拟主机配置详解

在 CentOS 7 操作系统中,通过 Nginx 实现虚拟主机的配置,可以有效地在同一台服务器上运行多个网站,并且各个网站之间互不干扰,本文将详细介绍如何在 CentOS 7 上通过 Nginx 配置虚拟主机,包括基于 IP、端口和域名的虚拟主机配置。

一、环境准备

1、安装 Nginx

确保你的系统已经安装了 Nginx,如果还没有安装,可以使用以下命令进行安装:

   yum install -y epel-release
   yum install -y nginx

2、创建站点根目录

为了方便管理,我们需要为每个虚拟主机创建单独的站点根目录:

   mkdir -p /var/wwwroot/site1
   mkdir -p /var/wwwroot/site2
   echo "<h1>Welcome to Site 1</h1>" > /var/wwwroot/site1/index.html
   echo "<h1>Welcome to Site 2</h1>" > /var/wwwroot/site2/index.html

3、关闭防火墙和 SELinux

为了防止防火墙和 SELinux 影响我们的配置,需要暂时关闭它们:

   systemctl stop firewalld
   systemctl disable firewalld
   setenforce 0

二、配置基于 IP 的虚拟主机

假设我们已经有两个 IP 地址192.168.71.103192.168.71.104,可以通过以下步骤配置基于 IP 的虚拟主机。

1、配置网络接口

编辑/etc/sysconfig/network-scripts/ifcfg-eth0 文件,添加以下内容以增加第二个 IP 地址:

   DEVICE=eth0:1
   IPADDR=192.168.71.104
   NETMASK=255.255.255.0
   ONBOOT=yes

2、配置 Nginx

编辑 Nginx 配置文件/etc/nginx/conf.d/vhosts.conf,添加以下内容:

   server {
       listen 192.168.71.103:80;
       server_name site1.test.com;
       root /var/wwwroot/site1;
       index index.html;
   }
   server {
       listen 192.168.71.104:80;
       server_name site2.test.com;
       root /var/wwwroot/site2;
       index index.html;
   }

3、重启 Nginx

保存配置文件后,重启 Nginx 服务:

   systemctl restart nginx

访问http://192.168.71.103http://192.168.71.104 应该分别看到不同的网站内容。

三、配置基于端口的虚拟主机

基于端口的虚拟主机配置相对简单,只需修改监听端口即可。

1、编辑 Nginx 配置文件

编辑/etc/nginx/conf.d/vhosts.conf,添加以下内容:

   server {
       listen 8081;
       server_name site1.test.com;
       root /var/wwwroot/site1;
       index index.html;
   }
   server {
       listen 8082;
       server_name site2.test.com;
       root /var/wwwroot/site2;
       index index.html;
   }

2、重启 Nginx

保存配置文件后,重启 Nginx 服务:

   systemctl restart nginx

访问http://your_server_ip:8081http://your_server_ip:8082 应该分别看到不同的网站内容。

四、配置基于域名的虚拟主机

基于域名的虚拟主机配置是最常见的方式,适用于大多数生产环境。

1、修改本地 hosts 文件

在 Windows 系统的C:\Windows\System32\drivers\etc\hosts 文件中添加以下内容:

   192.168.71.103 site1.test.com
   192.168.71.104 site2.test.com

2、编辑 Nginx 配置文件

编辑/etc/nginx/conf.d/vhosts.conf,添加以下内容:

   server {
       listen 80;
       server_name site1.test.com;
       root /var/wwwroot/site1;
       index index.html;
   }
   server {
       listen 80;
       server_name site2.test.com;
       root /var/wwwroot/site2;
       index index.html;
   }

3、重启 Nginx

保存配置文件后,重启 Nginx 服务:

   systemctl restart nginx

访问http://site1.test.comhttp://site2.test.com 应该分别看到不同的网站内容。

五、高级配置与优化

1.负载均衡

Nginx 还支持负载均衡功能,可以将请求分发到多台后端服务器。

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
}
server {
    listen 80;
    server_name example.com;
    location / {
        proxy_pass http://backend;
    }
}

2.SSL 配置

为了提高网站的安全性,可以为虚拟主机配置 SSL 证书:

server {
    listen 443 ssl;
    server_name site1.test.com;
    ssl_certificate /path/to/fullchain.pem;
    ssl_certificate_key /path/to/privkey.pem;
    root /var/wwwroot/site1;
    index index.html;
}

使用 Let’s Encrypt 等工具可以免费获取 SSL 证书。

3.缓存与压缩

启用 GZIP 压缩和浏览器缓存可以提高网站的加载速度:

http {
    gzip on;
    gzip_types text/plain application/xml text/css application/javascript;
    expires 30d;
}

六、常见问题解答(FAQs)

Q1:如何更改默认的虚拟主机?

A1:在 Nginx 配置文件中,默认的虚拟主机是第一个匹配的server 块,如果希望设置特定的虚拟主机为默认主机,可以在listen 指令中添加default_server 参数:

server {
    listen 80 default_server;
    server_name _;
    return 404;
}

这段配置表示,如果没有其他server_name 匹配,将会返回 404 Not Found。

Q2:如何防止 Nginx 配置文件出错?

A2:每次修改完 Nginx 配置文件后,建议使用以下命令检查配置文件的正确性:

nginx -t

如果配置文件有误,该命令会提示具体的错误信息,确认无误后,再重启 Nginx 服务:

systemctl restart nginx

可以在 Nginx 配置文件顶部添加以下配置,使 Nginx 自动检测配置文件的变化并热加载:

events {
    worker_connections 1024;
}
http {
    # other configurations...
}

然后在终端执行:

killall -HUP $(cat /var/run/nginx.pid)

这样,Nginx 就会重新加载配置文件而不会中断当前的连接。

小编有话说
通过以上步骤,你可以在 CentOS 7 上轻松配置 Nginx 虚拟主机,无论是基于 IP、端口还是域名,掌握这些技能后,你可以根据实际需求灵活地管理和扩展你的网站,如果在配置过程中遇到任何问题,欢迎随时提问!希望这篇文章对你有所帮助,祝你在运维的道路上越走越远!
  •  王丽丽
     发布于 2024-02-16 05:22:55  回复该评论
  • 要使用浏览器打开HTML文件,需要将HTML文档保存为.html格式,然后用浏览器打开该文件。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接