nginx配置实战1----配置虚拟主机

1 nginx虚拟主机的概念

虚拟主机是在网络服务器上划分出一定的磁盘空间供用户放置站点、应用组件等,提供必要的站点功能、数据存放和传输功能,所谓虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的服务器划分成多个“虚拟”的服务器,每一个虚拟主机都具有独立的域名和完整的Internet服务器(支持WWW、FTP、E-mail等)功能,

简单来说就是:在web服务里面就是一个独立的网站站点。

2,常见的虚拟主机类型

1基于域名的虚拟主机,就是通过域名来区分不同的虚拟主机,企业最常用。

2基于端口的虚拟主机配置,通过不同的端口来区分虚拟主机

3基于IP的虚拟主机配置

3基于域名的虚拟主机配置

 1 一个基于域名的虚拟主机配置
 2 worker_processes  1;
 3 error_log  logs/error.log;
 4 pid        logs/nginx.pid;
 5 
 6 events {
 7     worker_connections  1024;
 8 }
 9 
10 http {
11     include       mime.types;
12     default_type  application/octet-stream;
13     sendfile        on
14     keepalive_timeout  65;
15     server {
16         listen       80;
17         server_name  www.123.com;
18         location / {
19             root   /data/bbb/;   #网站根目录
20             index  index.html index.htm;
21         }
22         location = /50x.html {
23             root   html;
24         }
25     }
26 检测:
27 /usr/local/nginx/sbin/nginx -t
28 /usr/local/nginx/sbin/nginx -s reload(或者重新启动)    
29 然后创建
30 mkdri -p /data/bbb/
31 在网站跟目录追加文件
echo "http://www.123/com" >> /data/bbb/index.html

32 在linux客户端测试 33 需要在linux客户端下的hosts文件下加入 34 echo "ip www.123.com" 35 echo "192.168.0.3 www.23.com" 36 测试 37 [root@66 bbb]# curl www.123.com 38 http://www.123.com

 3.1配置多个域名

只需要在多加几个server模块即可,同时加上对应的域名即可

完整配置如下:

 1 一个基于域名的虚拟主机配置
 2 worker_processes  1;
 3 error_log  logs/error.log;
 4 pid        logs/nginx.pid;
 5 
 6 events {
 7     worker_connections  1024;
 8 }
 9 
10 http {
11     include       mime.types;
12     default_type  application/octet-stream;
13     sendfile        on
14     keepalive_timeout  65;
15     server {
16         listen       80;
17         server_name  www.123.com;
18         location / {
19             root   /data/bbb/;   #网站根目录
20             index  index.html index.htm;
21         }
22         location = /50x.html {
23             root   html;
24         }
25     }
26     server {
27         listen       80;
28         server_name  bbs.123.com;  #域名
29         location / {
30             root   /data/bbs/;   #网站根目录
31             index  index.html index.htm;
32         }
33         location = /50x.html {
34             root   html;
35         }
36     }
37     server {
38         listen       80;
39         server_name  blog.123.com;
40         location / {
41             root   /data/blog/;   #网站根目录
42             index  index.html index.htm;
43         }
44         location = /50x.html {
45             root   html;
46         }
47     }
48     
49 检测:
50 /usr/local/nginx/sbin/nginx -t
51 /usr/local/nginx/sbin/nginx -s reload(或者重新启动)    
52 然后创建
53 mkdri -p /data/bbb/
54 mkdri -p /data/bbs/
55 mkdri -p /data/blog/
56 在网站跟目录追加文件
57 echo "http://www.123.com" >> /data/bbb/index.html 
58 echo "http://bbs.123.com" >> /data/bbs/index.html 
59 echo "http://blog123.com" >> /data/blog/index.html 
60 在linux客户端测试
61 需要在linux客户端下的hosts文件下加入
62 echo "ip  www.123.com"
63 echo "192.168.0.3 www.123.com"
64 echo "192.168.0.3 bbs.123.com"
65 echo "192.168.0.3 blog.123.com"
66 测试
67 [root@66 data]# curl bbs.123.com
68 http://bbs.123.com
69 [root@66 data]# curl blog.123.com
70 http://blog123.com
71 [root@66 data]# curl www.123.com
72 http://www.123.com
73 [root@66 data]# 
View Code

上面的配置多个域名写法比较繁琐,我们可以拆开来写,方便以后扩展
加入include vhosts/*.conf;

简化nginx.conf的配置文件

如下:

 1 worker_processes  1;
 2 error_log  logs/error.log;
 3 pid        logs/nginx.pid;
 4 
 5 events {
 6     worker_connections  1024;
 7 }
 8 
 9 http {
10     include       mime.types;
11     default_type  application/octet-stream;
12     sendfile        on
13     keepalive_timeout  65;
14     include vhosts/www.conf
15     include vhosts/bbs.conf
16     include vhosts/blog.conf

然后在vhosts目录下加上上面的三个文件

 1 server {
 2         listen       80;
 3         server_name  www.123.com;
 4         location / {
 5             root   /data/bbb/;   #网站根目录
 6             index  index.html index.htm;
 7         }
 8         location = /50x.html {
 9             root   html;
10         }
11     }
www.conf
 1 server {
 2         listen       80;
 3         server_name  bbs.123.com;  #域名
 4         location / {
 5             root   /data/bbs/;   #网站根目录
 6             index  index.html index.htm;
 7         }
 8         location = /50x.html {
 9             root   html;
10         }
11     }
bbs.conf
 1 server {
 2         listen       80;
 3         server_name  blog.123.com;
 4         location / {
 5             root   /data/blog/;   #网站根目录
 6             index  index.html index.htm;
 7         }
 8         location = /50x.html {
 9             root   html;
10         }
11     }
blog.conf

测试:

1 [root@66 data]# curl bbs.123.com
2 http://bbs.123.com
3 [root@66 data]# curl blog.123.com
4 http://blog123.com
5 [root@66 data]# curl www.123.com
6 http://www.123.com
测试

 4基于端口号的配置

只需要在在上边的基础上修改listen的监听端口

具体配置如下:

 1 一个基于域名的虚拟主机配置
 2 worker_processes  1;
 3 error_log  logs/error.log;
 4 pid        logs/nginx.pid;
 5 
 6 events {
 7     worker_connections  1024;
 8 }
 9 
10 http {
11     include       mime.types;
12     default_type  application/octet-stream;
13     sendfile        on
14     keepalive_timeout  65;
15     server {
16         listen       80;
17         server_name  www.123.com;
18         location / {
19             root   /data/bbb/;   #网站根目录
20             index  index.html index.htm;
21         }
22         location = /50x.html {
23             root   html;
24         }
25     }
26     server {
27         listen       82;
28         server_name  bbs.123.com;  #域名
29         location / {
30             root   /data/bbs/;   #网站根目录
31             index  index.html index.htm;
32         }
33         location = /50x.html {
34             root   html;
35         }
36     }
37     server {
38         listen       82;
39         server_name  blog.123.com;
40         location / {
41             root   /data/blog/;   #网站根目录
42             index  index.html index.htm;
43         }
44         location = /50x.html {
45             root   html;
46         }
47     }
48     
49 检测:
50 /usr/local/nginx/sbin/nginx -t
51 /usr/local/nginx/sbin/nginx -s reload(或者重新启动)    
52 然后创建
53 mkdri -p /data/bbb/
54 mkdri -p /data/bbs/
55 mkdri -p /data/blog/
56 在网站跟目录追加文件
57 echo "http://www.123.com" >> /data/bbb/index.html 
58 echo "http://bbs.123.com" >> /data/bbs/index.html 
59 echo "http://blog123.com" >> /data/blog/index.html 
60 在linux客户端测试
61 需要在linux客户端下的hosts文件下加入
62 echo "ip  www.123.com"
63 echo "192.168.0.3 www.123.com"
64 echo "192.168.0.3 bbs.123.com"
65 echo "192.168.0.3 blog.123.com"
66 测试
67 [root@66 data]# curl bbs.123.com:80
68 http://bbs.123.com
69 [root@66 data]# curl blog.123.com:81
70 http://blog123.com
71 [root@66 data]# curl www.123.com:82
72 http://www.123.com
73 [root@66 data]#
View Code

5基于ip的配置
这个很少用,不在介绍

原文地址:https://www.cnblogs.com/Dicky-Zhang/p/5952917.html