河南网站定制开发服务商 · 服务商丘、周口及河南全省企业

nginx怎么做多个网站:老手教你用server块轻松搞定多域名部署,避坑指南

· 来源:河南SNAB网络科技 · 咨询建站:18236992212

本文关键词:nginx怎么做多个网站

很多刚接触服务器的小白,一听到“配置nginx”就头大。觉得那是大神干的事。其实真没你想得那么玄乎。

我就直说了,nginx配置多个网站,核心就一个字:分。

把不同的域名,分给不同的server块。这就好比你在一个小区里开了好几家店,每家店有独立的门牌号。nginx就是那个物业经理,负责把访客引到正确的店里。

咱们不整那些虚头巴脑的理论。直接上干货。

你打开你的nginx配置文件,通常在 /etc/nginx/conf.d/ 或者 sites-available 目录下。你会看到一堆 .conf 文件。

每个 .conf 文件,就是一个独立的网站配置。

比如,你想跑两个站。一个是 blog.example.com,一个是 shop.example.com。

你就新建两个文件:blog.conf 和 shop.conf。

别偷懒,别把所有东西都塞进一个 default.conf 里。那样后期维护起来,你绝对想骂人。

在 blog.conf 里,写 server 块。

server {

listen 80;

server_name blog.example.com;

location / {

proxy_pass http://127.0.0.1:8080;

proxy_set_header Host $host;

}

}

简单吧?listen 监听80端口,server_name 指定域名。location 里把请求转发给你的后端应用,比如跑在8080端口的node.js或者java服务。

注意看 proxy_set_header Host $host; 这一行。很多新手容易漏掉这个。

如果不加这一行,后端收到的请求头里,host是空的或者不对的。有些框架会因此报错,或者重定向循环。

这就是坑。

同样的,shop.conf 里也这么写,只是 server_name 改成 shop.example.com,proxy_pass 改成你shop后端的端口,比如 8081。

配置完,别急着重启。

先测试一下语法。

nginx -t

如果显示 syntax is ok,test is successful,那恭喜你,基本稳了。

如果有报错,它会告诉你哪一行错了。通常是分号漏了,或者大括号没配对。

这时候别慌,仔细检查。

测试通过后,reload 一下。

nginx -s reload

这样不用断开现有连接,平滑重启。

这时候,你去浏览器输入 blog.example.com。

如果看到你的博客页面,说明成了。

输入 shop.example.com,看到商城页面,也说明成了。

但是,这里有个大坑。

很多兄弟配完发现,访问 shop 的时候,竟然跳到了 blog。

为什么?

因为 nginx 有一个默认行为。

如果你访问的域名,在所有 server 块里都没匹配到,它会去访问第一个加载的 server 块,或者是你标记为 default_server 的那个。

通常,第一个被 nginx 读取到的 conf 文件,就会成为默认站点。

所以,如果你只想让特定域名访问,其他域名访问要返回 404 或者跳转到主页。

你需要在每个 server 块里,确保 server_name 写准确。

或者,你可以专门写一个 catch-all 的 server 块,监听所有未匹配的请求,直接返回 403 禁止访问。

server {

listen 80 default_server;

server_name _;

return 403;

}

把这个放在最后加载的位置。

这样,别人随便输个域名来扫你的端口,也只能看到 403。

安全一点。

再说说 https。

现在不搞 https 都不好意思说自己是做网站的。

配置 https 也很简单。

在 server 块里加上 ssl 相关的参数。

ssl_certificate /path/to/cert.pem;

ssl_certificate_key /path/to/key.pem;

然后把 listen 80 改成 listen 443 ssl。

记得,http 和 https 要分开配置。

你可以写一个 http 的 server 块,专门做 301 跳转,把所有 http 请求强制跳转到 https。

server {

listen 80;

server_name blog.example.com;

return 301 https://$server_name$request_uri;

}

这样既安全,又规范。

我见过太多人,为了省事,http 和 https 混在一起写。结果证书过期了,或者配置乱了,网站直接打不开。

排查起来能把你急死。

还有,静态资源。

如果你的网站里有图片、css、js。

别让他们经过 proxy_pass。

直接在 nginx 里用 location 匹配静态路径,指向磁盘上的目录。

location /static/ {

alias /var/www/blog/static/;

expires 30d;

}

这样 nginx 直接返回文件,不经过后端应用。

速度快,还省后端资源。

这是基本操作。

最后,提醒一句。

配置文件改完,一定要 nginx -t 测试。

一定要 reload。

不要直接 restart。

重启虽然也能生效,但在高并发场景下,restart 会导致瞬间连接中断。

reload 是平滑过渡,用户无感知。

这点细节,决定了你是业余选手还是专业运维。

如果你按照上面的步骤,还是搞不定。

那可能是你的服务器环境有问题,或者防火墙没开。

检查端口是否开放,检查后端服务是否真的在监听。

别光盯着 nginx 看。

有时候,问题出在别处。

如果你实在搞不定,或者想配置更复杂的负载均衡、动静分离。

那可以找我聊聊。

我不卖课,也不忽悠。

就是帮你看看配置,找找毛病。

毕竟,服务器稳定运行,比什么都重要。

别等网站挂了,才想起来找救兵。

平时多备份配置,多测试。

这才是正道。

别再花冤枉钱了!揭秘手机网站快速建设的3个坑,老站长含泪分享
别再花冤枉钱了!揭秘手机网站快速建设的3个坑,老站长含泪分享

做了十五年建站,说实话,现在这行水太深了。很多老板找我,开口就是:“我要做一个像苹果官网那样的高级手机网站,三天内上线,预算五千。”我听完只想笑。真的,不是我不愿意做,是这逻辑根本不通。今天咱们不聊虚的,就聊聊怎么用最少的钱,搞出一个能用的手机网站。先说个…

找网站建设公司 腾佳 避坑指南:7年老兵揭秘建站真相与报价内幕
找网站建设公司 腾佳 避坑指南:7年老兵揭秘建站真相与报价内幕

很多老板找建站公司,最怕遇到“效果图很丰满,上线后很骨感”的尴尬局面。这篇内容直接告诉你如何识别靠谱团队,避开隐形收费大坑,并给出真实的市场报价参考。读完这篇文章,你能清楚知道怎么跟建站公司谈价格,怎么验收代码,确保每一分钱都花在刀刃上。我做建站这行整整七…

别整那些花里胡哨的!聊聊简约型网站建设到底咋省钱又出效果
别整那些花里胡哨的!聊聊简约型网站建设到底咋省钱又出效果

本文关键词:简约型网站建设说实话,每次看到客户拿着那种满屏都是弹窗、动效飞起、颜色像霓虹灯一样的设计稿来找我,我都想把手里的咖啡泼过去。真的,不是我不专业,是这种设计在现在这个快节奏的互联网环境下,简直就是自杀行为。今天咱们不聊虚的,就聊聊为什么我死活劝大…

佛山网站建设shundeit:别被低价忽悠,顺德老板做官网的真实血泪账
佛山网站建设shundeit:别被低价忽悠,顺德老板做官网的真实血泪账

我在顺德做IT外包这行,快十年了。见过太多老板拿着几千块的预算,想做出几万块的效果。最后不仅网站打不开,还耽误了正经生意。今天不整那些虚头巴脑的概念,就聊聊佛山网站建设shundeit这个圈子,到底该怎么避坑。先说个真事。上个月有个做家具的朋友找我,说之前找的公司给…

别被低价忽悠了!青岛煜鹏网站建设公司揭秘:你的网站为什么总打不开还留不住人
别被低价忽悠了!青岛煜鹏网站建设公司揭秘:你的网站为什么总打不开还留不住人

做了七年建站,见过太多老板拍着大腿后悔。钱花了,网站做了,结果呢?要么打不开,要么打开像龟爬,要么访客进来转两圈就跑了。你以为是运气不好?错。是根本就没搞懂“建站”这两个字背后的逻辑。今天不整那些虚头巴脑的技术术语,咱们就聊聊实在的。为什么有些网站看着土,…

苏州网站建设营销q479185700刷屏背后的真相与避坑指南
苏州网站建设营销q479185700刷屏背后的真相与避坑指南

最近朋友圈和群里是不是被那个苏州网站建设营销q479185700刷屏搞得头都大了?说实话,我一开始也是烦得不行,满屏都是这串数字,感觉像是被强行塞了口饭。但耐着性子看完几个案例,发现这事儿还真不能一概而论。今天咱们就抛开那些虚头巴脑的官方套话,像老朋友聊天一样,聊聊…

看了这么多,不如动手做个自己的网站

新站建设、老站改版、外贸询盘站,先聊需求再报价,咨询不收费。

建站咨询热线18236992212
在线留言
18236992212 微信 18236992212 809451989@qq.com