Nginx 虚拟主机配置

网友投稿 350 2022-09-13

Nginx 虚拟主机配置

Nginx虚拟主机

虚拟主机提供了在同一台服务器上运行多个网站的功能,启动的是一个nginx实例,部署多个虚拟主机来发布多个门户网站。虚拟主机标识是server,一个server对应一个虚拟主机。

虚拟主机的三种模式

(1)基于多域名方式配置虚拟主机

(2)基于多端口配置虚拟主机

(3)基于多ip配置虚拟主机

(1)基于多域名方式配置虚拟主机

基于多域名的虚拟主机是最常见的一种虚拟主机。只需配置你的DNS服务器,将每个主机名映射到正确的IP地址,然后配置Nginx服务器,令其识别不同的主机名就可以了。

网域名称系统(DNS,Domain Name System,将域名和IP地址相互映射的一个分布式数据库)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。

ps:如果没有特殊要求,最好还是使用基于多域名的虚拟主机。

hosts文件:在本机计算机上面,配置本地的ip地址和域名映射关系,通常用于测试。Windows 本地hosts文件,域名在本地的hosts里面做解析,不走公网。

C:\Windows\System32\drivers\etc\hosts

如果所有的虚拟主机都写在/usr/local/nginx/conf/vhost/*.conf;

[root@~]# mkdir -p /usr/local/nginx/conf/vhost  --vhost下面都是每台虚拟主机的配置

创建三台虚拟主机

[root@~]# vim /usr/local/nginx/conf/vhost/test.com.conf --配置第一台虚拟主机以.conf结尾 server { listen 80; server_name test.com; charset utf-8; root /data/ index index.html index.htm; }[root@~]# vim /usr/local/nginx/conf/vhost/test1.com.conf --配置第二台虚拟主机 server { listen 80; server_name test1.com; charset utf-8; root /data/ index index.html index.htm; }[root@~]# vim /usr/local/nginx/conf/vhost/tes2.com.conf --配置第三台虚拟主机 server { listen 80; server_name test2.com; charset utf-8; root /data/ index index.html index.htm; }

创建每个server的发布目录,这些站点的路径是不存在的,需要手动创建(mkdir -p /data/test2 test3)

[root@~]# echo "this is test" > /data/~]# echo "this is test1" > /data/~]# echo "this is test2" > /data/ test.com    test1.com   test2.com

(2)基于多端口配置虚拟主机(可以使用同一个ip,通过访问不同的端口来访问)

[root@~]# vim /usr/local/nginx/conf/vhost/test1.com.conf --修改之前的配置文件,绑定8080端口 server { listen 8080; server_name test1.com; charset utf-8; root /data/ index index.html index.htm; }[root@~]# netstat -tpln | grep 80 --可以看到虚拟主机test1用的是8080端口,虚拟主机test用的是80端口tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 55384/nginx: master tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 55384/nginx: master

(3)基于多IP的虚拟主机(通过添加多个网卡或者在一块物理网卡上绑定多个IP地址来实现)

[root@~]# ip a

ens33: mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:0c:29:b4:88:32 brd ff:ff:ff:ff:ff:ff

inet 192.168.179.99/24 brd 192.168.179.255 scope global ens33

valid_lft forever preferred_lft forever

inet 192.168.179.150/24 brd 192.168.179.255 scope global secondary ens33:1

valid_lft forever preferred_lft forever

[root@~]# vim /usr/local/nginx/conf/vhost/test.com.conf server { listen 192.168.179.99:80; server_name test.com; charset utf-8; root /data/ index index.html index.htm; }[root@~]# vim /usr/local/nginx/conf/vhost/test1.com.conf server { server_name test1.com; listen 192.168.179.150:80; --绑定IP,因为含有多个IP,所以要监听不同IP的80端口 charset utf-8; root /data/ index index.html index.htm; }

在/etc/hosts配置

192.168.179.99  test.com

192.168.179.150  test1.com

[root@~]# netstat -tpln

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 192.168.179.150:80      0.0.0.0:*               LISTEN      2510/nginx: master

tcp        0      0 192.168.179.99:80       0.0.0.0:*               LISTEN      2510/nginx: master

[root@~]# echo "this is 192.168.179.150:80" > /data/~]# curl test1.com

this is 192.168.179.150:80

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:PR人:《山河令》、《庆余年》大火的背后:网文没有天花板!
下一篇:Nginx http_proxy_module模块实现缓存代理服务器
相关文章

 发表评论

暂时没有评论,来抢沙发吧~