您现在的位置是:烟消火灭网 > 娱乐

nginx域名访问80端口

烟消火灭网2026-10-17 07:47:22【娱乐】5人已围观

简介nginx监听80端口这事儿,说穿了就是一行配置的事,但坑往往不在配置本身。 我上周刚帮一个朋友排查过类似问题。他域名解析正常,ping得通,服务器上nginx也跑着,可浏览器一访问就是“无法访问此网

nginx监听80端口这事儿,名访说穿了就是问端一行配置的事,但坑往往不在配置本身。名访

我上周刚帮一个朋友排查过类似问题。问端他域名解析正常,名访ping得通,问端服务器上nginx也跑着,名访可浏览器一访问就是问端“无法访问此网站”。我登上去一看,名访nginx.conf里listen 80;写得好好的问端,防火墙也放行了。名访最后问题出在哪?问端他服务器上还装了个Apache,俩服务抢80端口,名访nginx根本没起来。问端

这种低级错误其实挺常见。名访你敲systemctl status nginx看到的是active,但实际进程可能已经崩了,或者被别的服务占了端口。所以第一步别信服务状态,直接ss -tlnp | grep :80看谁在监听。

真正的核心配置长这样:

server {  listen 80; server_name example.com www.example.com; root /var/www/html; index index.html; } 

这段必须放在http块里,而且server_name要跟你域名完全一致,包括www前缀。很多人把server_name写成IP或者干脆留空,那nginx只认默认server,你访问域名时它根本匹配不上。

还有一个容易忽略的点——DNS解析。你本地ping通了不代表服务器端解析没问题。nginx在启动时不会去解析server_name,它是拿请求头里的Host字段跟配置比对。所以你在浏览器输入example.com,但服务器上nginx配置的是www.example.com,那直接访问不带www的域名就会报404。

解决办法很简单:要么两个域名都写上,要么加一条301跳转。我习惯把主域名和不带www的都写进去,然后用return 301把非主域名跳过去。这样用户不管输什么都能访问,搜索引擎也不会觉得你有重复内容。

再说个实际案例。有次客户说他们网站时好时坏,我查了半天发现是nginx的worker_processes设成了1,单进程处理不过来高并发。这跟80端口配置无关,但属于“域名能访问但体验差”的范畴。改完重启,立马流畅。

最后提醒一句:改完配置一定先nginx -t测语法,再systemctl reload nginx。直接restart的话,万一配置有错,服务就彻底挂了,远程操作时你得有备用方案才能救回来。

80端口这事,本质就是“域名指向服务器IP,服务器IP上有个进程在听80,nginx配置里server_name匹配到请求Host”。三步全对,网站就通。哪一步断了,按这个顺序排查,比瞎试快得多。

很赞哦!(55)