在CentOS上配置Nginx虚拟主机是一种常见的实践,它允许在同一台服务器上运行多个网站或应用,本文将详细介绍如何在CentOS上使用Nginx配置虚拟主机,包括基于域名、端口和IP地址的三种配置方式。
一、准备工作
1、安装Nginx:
如果尚未安装Nginx,可以使用以下命令进行安装:
yum install -y epel-release yum install -y nginx
2、启动Nginx服务:
systemctl start nginx
3、设置开机自启:
systemctl enable nginx
4、检查Nginx配置文件语法是否正确:
nginx -t
二、配置Nginx虚拟主机
1. 基于域名的虚拟主机
这是最常用的一种配置方式,通过不同的域名来区分不同的虚拟主机。
(1)编辑主配置文件:
打开Nginx的主配置文件/etc/nginx/nginx.conf
,在http
块中添加include
指令,包含一个目录中的所有子配置文件:
http { include mime.types; default_type application/octet-stream; include /etc/nginx/conf.d/*.conf; }
(2)创建虚拟主机配置文件:
在/etc/nginx/conf.d/
目录下创建一个新的配置文件,例如example.com.conf
:
server { listen 80; server_name example.com www.example.com; root /usr/share/nginx/html/example; index index.html index.htm; location / { try_files $uri $uri/ =404; } }
(3)创建根目录并添加测试页面:
mkdir -p /usr/share/nginx/html/example echo "<h1>Welcome to example.com</h1>" > /usr/share/nginx/html/example/index.html
(4)重启Nginx:
systemctl restart nginx
2. 基于端口的虚拟主机
这种方式通过不同的端口号来区分不同的虚拟主机。
(1)编辑主配置文件:
同样在/etc/nginx/nginx.conf
中的http
块中添加include
指令。
(2)创建虚拟主机配置文件:
在/etc/nginx/conf.d/
目录下创建一个新的配置文件,例如port8080.conf
:
server { listen 8080; server_name example.com; root /usr/share/nginx/html/port8080; index index.html index.htm; location / { try_files $uri $uri/ =404; } }
(3)创建根目录并添加测试页面:
mkdir -p /usr/share/nginx/html/port8080 echo "<h1>Welcome to port 8080</h1>" > /usr/share/nginx/html/port8080/index.html
(4)开放防火墙端口:
firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload
(5)重启Nginx:
systemctl restart nginx
3. 基于IP地址的虚拟主机
这种方式通过不同的IP地址来区分不同的虚拟主机。
(1)为网卡添加额外的IP地址:
ifconfig eth0:1 192.168.1.2 netmask 255.255.255.0 up
(2)编辑主配置文件:
在/etc/nginx/nginx.conf
中的http
块中添加include
指令。
(3)创建虚拟主机配置文件:
在/etc/nginx/conf.d/
目录下创建一个新的配置文件,例如ip192.168.1.2.conf
:
server { listen 192.168.1.2:80; server_name example.com; root /usr/share/nginx/html/ip192.168.1.2; index index.html index.htm; location / { try_files $uri $uri/ =404; } }
(4)创建根目录并添加测试页面:
mkdir -p /usr/share/nginx/html/ip192.168.1.2 echo "<h1>Welcome to IP 192.168.1.2</h1>" > /usr/share/nginx/html/ip192.168.1.2/index.html
(5)重启Nginx:
systemctl restart nginx
三、常见问题解答
Q1: Nginx配置文件修改后不生效?
A1: 修改Nginx配置文件后,需要重新加载或重启Nginx服务才能使更改生效,可以使用以下命令重新加载配置:
nginx -s reload
或者重启Nginx服务:
systemctl restart nginx
Q2: 如何更改Nginx默认网页根目录?
A2: 默认情况下,Nginx的网页根目录是/usr/share/nginx/html
,你可以在虚拟主机配置中通过root
指令来指定新的根目录,
server { listen 80; server_name example.com; root /var/www/html; # 新的根目录路径 index index.html index.htm; location / { try_files $uri $uri/ =404; } }
然后重启Nginx服务即可。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1391391.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复