Nginx 虚拟主机配置的三种方式(基于域名)
Nginx配置虚拟主机支持3种方式:基于IP的虚拟主机配置,基于端口的虚拟主机配置,基于域名的虚拟主机配置。
详解Nginx虚拟主机配置的三种方式(基于IP)https://www.nhooo.com/article/149774.htm
详解Nginx虚拟主机配置的三种方式(基于端口)https://www.nhooo.com/article/14978.htm
3、Nginx基于域名的虚拟主机配置
使用基于域名的虚拟主机配置是比较流行的方式,可以在同一个IP上配置多个域名并且都通过80端口访问。
3.1假设服务器有个IP地址为192.168.2.155
[root@localhost~]#ifconfigens33:5192.168.2.155/24up [root@localhost~]#ifconfig ens33:5:flags=4163mtu1500 inet192.168.2.155netmask255.255.255.0broadcast192.168.2.255 ether00:0c:29:16:90:aetxqueuelen1000(Ethernet)
3.2192.168.2.155对应的域名如下,配置主机的host文件便于测试
[root@localhost~]#vim/etc/hosts [root@localhost~]#cat/etc/hosts|grep192.168.2.155 192.168.2.155www.oa.com 192.168.2.155www.bbs.com 192.168.2.155www.test.com
3.3建立虚拟主机存放网页的根目录,并创建首页文件index.html
[root@localhost~]#cd/data/www/ [root@localhostwww]#mkdirwww.oa.com [root@localhostwww]#mkdirwww.bbs.com [root@localhostwww]#mkdirwww.test.com [root@localhostwww]#echowww.oa.com>www.oa.com/index.html [root@localhostwww]#echowww.bbs.com>www.bbs.com/index.html [root@localhostwww]#echowww.test.com>www.test.com/index.html
3.4修改nginx.conf,将虚拟主机配置文件包含进主文件
[root@localhost/]#cd/usr/local/nginx/conf/ [root@localhostconf]#ls fastcgi.conffastcgi_paramskoi-utfmime.typesnginx.confscgi_paramsuwsgi_paramswin-utf fastcgi.conf.defaultfastcgi_params.defaultkoi-winmime.types.defaultnginx.conf.defaultscgi_params.defaultuwsgi_params.default [root@localhostconf]#vimnginx.conf
在nginx.conf文件末尾加入以下配置
#在http段中找到以下内容并删除每行前面的“#” log_formatmain'$remote_addr-$remote_user[$time_local]"$request"' '$status$body_bytes_sent"$http_referer"' '"$http_user_agent""$http_x_forwarded_for"'; #配置文件结尾的最后一个“}”之前加入以下语句,如下所示 includevhost/*.conf
3.5编辑每个域名的配置文件(每个虚拟主机的配置文件)
[root@localhostconf]#cdvhost/ [root@localhostvhost]#catwww.oa.com.conf server{ listen192.168.2.155:80; server_namewww.oa.com; access_log/data/logs/www.oa.com.logmain; error_log/data/logs/www.oa.com.error.log; location/{ root/data/www/www.oa.com; indexindex.htmlindex.htm; } } [root@localhostvhost]#catwww.bbs.com.conf server{ listen192.168.2.155:80; server_namewww.bbs.com; access_log/data/logs/www.bbs.com.logmain; error_log/data/logs/www.bbs.com.error.log; location/{ root/data/www/www.bbs.com; indexindex.htmlindex.htm; } } [root@localhostvhost]#catwww.test.com.conf server{ listen192.168.2.155:80; server_namewww.test.com; access_log/data/logs/www.test.com.logmain; error_log/data/logs/www.test.com.error.log; location/{ root/data/www/www.test.com; indexindex.htmlindex.htm; } } [root@localhostvhost]#cat/data/www/www.oa.com/index.html www.oa.com [root@localhostvhost]#cat/data/www/www.bbs.com/index.html www.bbs.com [root@localhostvhost]#cat/data/www/www.test.com/index.html www.test.com
3.6创建日志文件,否则无法启动nginx
[root@localhost/]#mkdir-p/data/logs [root@localhost/]#touch/data/logs/www.oa.com.log [root@localhost/]#touch/data/logs/www.oa.com.error.log [root@localhost/]#touch/data/logs/www.bbs.com.log [root@localhost/]#touch/data/logs/www.bbs.com.error.log [root@localhost/]#touch/data/logs/www.test.com.log [root@localhost/]#touch/data/logs/www.test.com.error.log [root@localhost/]#ls/data/logs/ www.oa.com.error.logwww.bbs.com.error.logwww.test.com.error.log www.oa.com.logwww.bbs.com.logwww.test.com.log
3.7先测试配置文件然后再启动nginx
[root@localhost/]#cd/usr/local/nginx/sbin/ [root@localhostsbin]#./nginx-t nginx:theconfigurationfile/usr/local/nginx/conf/nginx.confsyntaxisok nginx:configurationfile/usr/local/nginx/conf/nginx.conftestissuccessful #启动nginx [root@localhostsbin]#./nginx
3.8测试文件
[root@localhostvhost]#curlhttp://www.oa.com www.oa.com [root@localhostvhost]#curlhttp://www.bbs.com www.bbs.com [root@localhostvhost]#curlhttp://www.test.com www.test.com
附:配置过程中的问题
1、最后测试时发生的问题
[root@localhost~]#curlhttp://www.oa.com curl:(7)Failedconnecttowww.oa.com:80;拒绝连接
解决方法:
查看Nginx是否在监听相应的端口。
[root@localhost~]#netstat-lnt ActiveInternetconnections(onlyservers) ProtoRecv-QSend-QLocalAddressForeignAddressState tcp000.0.0.0:1110.0.0.0:*LISTEN tcp00192.168.2.155:800.0.0.0:*LISTEN tcp000.0.0.0:80800.0.0.0:*LISTEN tcp000.0.0.0:220.0.0.0:*LISTEN tcp00127.0.0.1:250.0.0.0:*LISTEN tcp600:::111:::*LISTEN tcp600:::22:::*LISTEN tcp600:::23:::*LISTEN tcp600::1:25:::*LISTEN
1、配置虚拟主机文件时要加上监听的IP地址,每个虚拟主机配置文件都一样。
listen192.168.2.155:80;
2、配置完成后要重启服务器
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。