CentOS+Nginx反向代理本地8080,配置片段可直接抄
线上服务突然跑在8080端口,老板一句“要用域名访问”,手边只有一台最小化装的CentOS,防火墙还开着,怎么办?把Nginx拎出来当反代,是最省心的办法。下面这段路,我踩过坑,也帮同事填过坑,直接把能用的配置甩给你,复制粘贴就能跑,顺便把容易卡住的地方一次说清。

先装Nginx,别用旧源
CentOS默认仓库里的Nginx版本老得能当化石,先给系统换条新源:
sudo yum install -y yum-utils
sudo vi /etc/yum.repos.d/nginx.repo
把下面内容整块丢进去,保存退出:
[nginx-stable]

name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
接着敲:

sudo yum install -y nginx
装完顺手启动:
sudo systemctl enable --now nginx
浏览器里输入服务器IP,看到欢迎页就说明安装这一步没毛病。
放开防火墙,别把自己关门外
CentOS自带firewalld,默认只给SSH开口子。HTTP和HTTPS得手动放:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
一条不落敲完,再刷新页面,确保80端口能通。
反向代理核心配置,照抄别改错地方
Nginx配反代就两步:建配置文件、加两行关键指令。先别动默认配置,单独给站点开文件,以后好维护:
sudo vi /etc/nginx/conf.d/proxy8080.conf
下面这段内容整段复制,域名、端口按自己实际改,其余别手痒:
server {
/tablisten 80;
/tabservername yourdomain.com;
/tablocation / {
/tab/tabproxypass http://127.0.0.1:8080;
/tab/tabproxysetheader Host $host;
/tab/tabproxysetheader X-Real-IP $remoteaddr;
/tab/tabproxysetheader X-Forwarded-For $proxyaddxforwardedfor;
/tab/tabproxyset_header X-Forwarded-Proto $scheme;
/tab}
}
保存后别急着重启,先检查语法:
sudo nginx -t
看到“test is successful”再reload:
sudo systemctl reload nginx
此时把域名解析到服务器IP,访问域名,页面内容其实就是本地8080端口在干活,地址栏却干干净净不带端口号,反代完成。
常见502,多半是后端没回应
刷新页面突然报502 Bad Gateway,别急着骂Nginx,九成是后端服务没跑或者监听地址不对。先在本机curl一下:
curl -I http://127.0.0.1:8080
如果这里就卡死,说明服务没起来,或者只绑定了IPv6。把后端启动参数改成监听0.0.0.0:8080,再试,基本秒好。
加HTTPS,免费证书三分钟搞定
老板又说“浏览器地址栏得带锁”。Let’s Encrypt整一张免费证书,两条命令完事:
sudo yum install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
按照提示输入邮箱、同意协议,certbot会自动改配置,reload后https就能用。证书到期前它会自己续,不用人管。
性能再紧一扣,给Nginx加点料
访问量一上来,默认参数容易吃紧。顺手把几个关键值拉高,写进/etc/nginx/nginx.conf的http段:
workerprocesses auto;
workerrlimitnofile 65535;
events {
/tabworkerconnections 4096;
/tabuse epoll;
}
保存reload,连接数直接翻几倍,小服务器也能顶住突发流量。
一套配置直接带走
把上面步骤串起来,就是一套能落地的“CentOS+Nginx反向代理本地8080”方案。再啰嗦一遍关键文件路径,方便你抄完就走:
1. 站点配置:/etc/nginx/conf.d/proxy8080.conf
2. 主调优:/etc/nginx/nginx.conf
3. 证书自动续:systemctl list-timers | grep certbot
以后换端口、换域名,只改proxypass和servername两行,reload一秒生效,别的都不用动。
