Linux 下让普通用户的 nginx 能使用 1024 以下端口

文章
林里克斯

普通用户不允许使用 1024 以下的端口,如果提供的是网页服务 80443 基本上是必须的。这篇文章教你用三种方法来解决这个问题。

Linux 下让普通用户的 nginx 能使用 1024 以下端口


实验平台:CentOS Linux release 7.6.1810

Nginx Version:OpenResty-1.17.8.2


以下三种方法都需要有 root 权限的前提才可以!

  • 设置 SetUID
$ chown root:root /data/nginx/sbin/nginx
$ chmod 4755 /data/nginx/sbin/nginx
或
$ chmod u+s /data/nginx/sbin/nginx
#这种方式会让 nginx 的主进程是 root 用户的身份在运行。但是普通用户也有权限操作
  • iptables 端口转发
$ sudo sysctl -w net.ipv4.ip_forward=1
#首先打开 IP FORWARD 转发功能,这是临时生效
$ sudo vim /etc/sysctl.conf
net.ipv4.ip_forward=1
$ sudo sysctl -p /etc/sysctl.conf
#写入配置文件永久生效
$ iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
#将 8080 端口的流量转给 80 端口
$ iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8000
#将 8000 端口的流量转给 443 端口
#这种方式不建议在生产环境使用,因为生产环境 Web 业务负载可能会比较高,如果再走一遍 iptables 转发可能会影响业务访问能力
  • 赋予监听 1024 以下端口的权限能力
$ setcap cap_net_bind_service=+ep /data/nginx/sbin/nginx
#赋予 nginx 命令可以监听 1024 一下端口的能力
#操作之后,nginx 的背景色可能会改变。

Over~

版权协议须知!

本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意

1055 0 2020-11-28


分享:
icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif
博主卡片
林里克斯 博主大人
一个致力于Linux的运维平台
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。

现在时间 2024-05-18

今日天气
站点统计
  • 文章总数:240篇
  • 分类总数:29个
  • 评论总数:10条
  • 本站总访问量 222616 次

@奥奥

@Wong arrhenius 牛比

@MakerFace 厉害了!