Nginx虚拟主机配置

小辉博客
小辉博客
小辉博客
394
文章
3
评论
2020-03-3109:44:27
评论
20.2K 2477字阅读8分15秒

Nginx虚拟主机的概念

虚拟主机,就是把一台物理服务器划分成多个"虚拟"的服务器,每一个虚拟主机都可以有独立的域名和独立的目录。

Nginx虚拟主机的配置

Nginx的虚拟主机就是通过nginx.conf中server节点指定的,想要设置多个虚拟主机,配置多个server节点即可

每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Intemet服务器功能(WWW、FTP、Email等),同一台主机上的虚拟主机之间是完全独立的。从网站访问者来看,每一台虚拟主机和一台独立的主机完全一样。

利用虚拟主机,不用为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程。虚拟主机提供了在同一台服务器、同一组Nginx进程上运行多个网站的功能。

Nginx基本配置

Nginx的主配置文件是:nginx.conf,nginx.conf主要组成如下:

# 全局区,有一个工作子进程,一般设置为CPU数 * 核数

worker_processes 1;
events {
# 一般是配置nginx进程与连接的特性
# 如1个word能同时允许多少连接,一个子进程最大允许连接1024个连接
worker_connections 1024;
}
# 配置HTTP服务器配置段
http {
# 配置虚拟主机段
server {
# 定位,把特殊的路径或文件再次定位。
location {
}
}
server {
.......
}
}

虚拟主机名可以有4种格式:

(1)准确的名字,例如此例中的a.test.com

(2)*号开头的,例如 *.test.com

(3)*号结尾的,例如 mail.*

(4)正则表达式形式,例如

server_name ~^www\d+\.abc\.com$;

注意,使用正则表达式形式时,必须以'~'开头

server_name也可以同时指定多个,例如:

server_name abc.com www.abc.com *.abc.com;

这时优先级为:

(1)确切的名字

(2)最长的以*起始的通配符名字

(3)最长的以*结束的通配符名字

(4)第一个匹配的正则表达式名字

NGINX虚拟主机方式有三种:基于域名、基于端口、基于IP,如下

1)基于域名的虚拟主机

1、在http模块下面新增以下内容

server {
#监听端口 80
listen 80;
#监听域名abc.com;
server_name abc.com;
location / {
# 相对路径,相对nginx根目录。
root /html/abc;
# 默认跳转到index.html页面
index index.html;
}
}

2、创建发布目录

[root@localhost ~]# mkdir /usr/local/nginx/html/abc

3、创建index.html测试页面

[root@localhost ~]# vim /usr/local/nginx/html/abc/index.html,添加以下内容

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h2>基于域名的虚拟主机-index</h2>
</body>
</html>

4、平滑重启nginx服务

[root@localhost ~]# /usr/local/nginx/sbin/nginx -t

[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload

Nginx虚拟主机配置

5、配置windows的hosts文件(C:\Windows\System32\drivers\etc\hosts)

Nginx虚拟主机配置

Nginx虚拟主机配置

2)基于端口的虚拟主机

1、编辑配置文件:vim /usr/local/nginx/conf/nginx.conf,修改为以下内容

server {
listen 8080;
server_name abc.com;
location / {
root html/abc;
index index.html index.htm;
}
}

2、编辑index.html文件,

[root@localhost ~]# vim /usr/local/nginx/html/abc/index.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h2>基于端口的虚拟主机-index</h2>
</body>
</html>

3、平滑重启nginx服务

[root@localhost ~]# /usr/local/nginx/sbin/nginx -t

[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload

Nginx虚拟主机配置

4、浏览器访问http://abc.com:8080/

Nginx虚拟主机配置

3)基于IP的虚拟主机

1、编辑配置文件:vim /usr/local/nginx/conf/nginx.conf,修改为以下内容

server {
listen 80;
server_name 192.168.60.99;
location / {
root html/abc;
index index.html index.htm;
}
}

2、编辑index.html文件

[root@localhost ~]# vim /usr/local/nginx/html/abc/index.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h2>基于IP的虚拟主机-index</h2>
</body>
</html>

3、平滑重启nginx服务

[root@localhost ~]# /usr/local/nginx/sbin/nginx -t

[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload

Nginx虚拟主机配置

4、浏览器访问:http://192.168.60.99

Nginx虚拟主机配置

继续阅读
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如果喜欢本站,请打赏支持本站,谢谢!
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
小辉博客
  • 本文由 发表于 2020-03-3109:44:27
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
Nginx动态添加模块 Nginx

Nginx动态添加模块

说明: 有时我们需要在现有的web服务器上增加新的模块实现更为丰富的功能,Nginx算是比较常用的web服务器,但是nginx也不仅仅只可以做web服务器,只要有对应的插件还可用作反向代理、即时通讯...
Nginx日志切割脚本(按天切割) Nginx

Nginx日志切割脚本(按天切割)

Nginx日志默认不做人为处理,日志文件会存放在access.log,error.log两个文件中,随着时间的推移,日志量会越来越大,不方便编辑查看,为了让日志按天存放,可以做一些配置,设置一个定时任...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: