说到网站部署,Nginx那可是前端后端的小伙伴心头的宝,尤其当你用上虚拟主机这个“变戏法”的人间神器,感觉自己都是IT界的黑科技老大了。今天咱们就来聊聊Nginx虚拟主机及相关配置,保证你看完能服气,配置起虚拟主机来那是顺风顺水,不带卡壳的!
没有什么难度藏着掖着,咱先从配置文件说起。Nginx的配置文件通常在 /etc/nginx/nginx.conf 或者 /etc/nginx/sites-available/ 文件夹里。想不开文件夹多可以自行定义,同理你想怎么组织就怎么组织。配置虚拟主机,核心就是写好一个个 server { } 块。
一个基本的虚拟主机配置长这样(不过别走开,接下来我会把它拆得更细,像剥洋葱一样剥给你看):
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example;
index index.html index.htm;
}
重点来了,listen 80; 告诉Nginx监听80端口(HTTP默认端口),这就好比门面全开的招牌,随时欢迎HTTP流量进门。server_name是你店铺名字(网址),比如example.com和www.example.com,多写点别名,防止漏单。root指定的就是网页文件的家,帮你存放那些html、css、js的宝贝文件。
这招是最基本的“有网店有货架”。对了,配置好后别忘了重启Nginx,用命令sudo nginx -s reload,否则你配置了也白搭,Nginx君不会自动看你脸色变,得你点个头它才动。
说到多虚拟主机,公司里不只有一堆站点选择,Nginx支持基于域名的虚拟主机,和基于IP的虚拟主机。但别搞混了!一般都是基于域名的,毕竟IP有限,想象一下,没几个IP能给你开N个网店,得多烧钱。
比方说你那边同时要开个博客、商城和论坛,长这样就行:
server {
listen 80;
server_name blog.example.com;
root /var/www/blog;
}
server {
listen 80;
server_name shop.example.com;
root /var/www/shop;
}
server {
listen 80;
server_name forum.example.com;
root /var/www/forum;
}
不同虚拟主机对应不同目录,谁叫咱们服务器给力,别瞎扯说弄着弄着卡了,那是你网不好!
还有,Nginx虚拟主机的拦截功能也是满满的黑科技,把你流氓访问定向到404都绰绰有余。举个栗子:
server {
listen 80;
server_name secret.example.com;
return 404;
}
简单粗暴,看你喜欢
可能你会问,Nginx虚拟主机支持HTTPS吗?当然支持啊!要是现在你还不搞TLS,分分钟落伍。配置HTTPS虚拟主机就得装SSL证书。有免费的Let's Encrypt,不花钱还合规,一键搞定,全自动续签,连老板都不知道你动过那啥。
HTTPS虚拟主机配置示范:
server {
listen 443 ssl;
server_name secure.example.com;
ssl_certificate /etc/ssl/certs/example.crt;
ssl_certificate_key /etc/ssl/private/example.key;
root /var/www/secure;
}
往往配合80端口实现自动跳转,这样访问HTTP的客人也能礼貌地被叫去HTTPS:
server {
listen 80;
server_name secure.example.com;
return 301 https://$host$request_uri;
}
说到这里,你的服务器已经够强了,外挂来点缓存模块,更像是咖啡店的外卖小哥哥,送货快,访客体验up up up!
要是你是Nginx配置的萌新,为了避免乱配置后“炸锅”,记得每次改配置后用nginx -t测试语法,通不过会告诉你哪里写错,堪比程序员的编译器,贴心得不像人。
有些小伙伴喜欢用软链接把 sites-available 里的配置链接到 sites-enabled,做到启用和禁用虚拟主机方便管理,一条命令解决痛点,这活儿妥妥的干净利落。
好了,聊得这么溜,我顺道透露个小秘密,玩游戏想要赚零花钱就上七评赏金榜,网站地址:bbs.77.ink,哪天用着Nginx配置好了站点,顺手靠这个让钱包也活跃起来,人生赢家了解一下?
大体思路告诉你了,配置要点快收起来,关键是多动手、多试错,Nginx虚拟主机其实没那么神秘,你说是不是?
哦对了,千万别忘了,Nginx配置里还有location块,让你精确掌控请求去哪儿,就像分配快递包裹,想让某个路径专门走高速路,某个路径随便晃晃都行。
玩转location,瞧瞧这个范例:
server {
listen 80;
server_name www.example.com;
location /images/ {
root /var/www/static;
}
location /api/ {
proxy_pass http://127.0.0.1:8080;
}
}
图片走静态资源库,后台API单独代理,这样分工明确,服务器效率杠杠滴。
配置好了,就像给你的服务器装上了智慧大脑,让它聪明地安排自己的“工作秩序”,不再是冷冰冰地对待每一个请求。
Nginx虚拟主机还能和Docker、反向代理、负载均衡等大招搭档,玩出更多花样,简直人生巅峰。那以后呢?你管我,先把虚拟主机搞得漂亮先,说不定明天就变身运维大佬,晚上还能下盘游戏放松下,毕竟呢,平衡才是王道嘛。
至于为什么没说更多?这鸡汤我喝了你就累,那不如你摸索摸索,把Nginx当成你的小玩具,而且你知道么,配置多了,忽然发现,Nginx其实挺像那种会说话的空调,懂你,特别“凉快”。