小小胖 发表于 2023-2-4 00:27
  

感谢分享,有助于工作和学习
鲤鲤 发表于 2023-2-4 00:27
  

感谢分享,有助于工作和学习
朱墩2 发表于 2023-2-4 00:27
  

感谢分享,有助于工作和学习
飞飞侠 发表于 2023-2-4 00:33
  

感谢分享,有助于工作和学习
德德 发表于 2023-2-4 00:39
  
感谢分享,有助于工作和学习
小西北 发表于 2023-2-4 00:43
  
感谢分享,有助于工作和学习
小霞米 发表于 2023-2-4 00:46
  
感谢分享,有助于工作和学习
好懒 发表于 2023-3-9 09:54
  
楼主分享的案例很实用,具有典型性,希望有更多这样的干货供我们学习参考,非常感谢!
天青色 发表于 2023-3-31 09:50
  
楼主分析的很详细,不错的实战经验,小白用户一看就懂,非常好的技术干货帖,顶一个!
#干货满满# 普通用户使用1024以下端口启动nginx
  

牵网线的 28183人觉得有帮助

{{ttag.title}}
本帖最后由 牵网线的 于 2022-11-3 10:00 编辑

问题现象:
客户现场使用利旧主机安装系统,原来使用的1024以下的端口,现在需要使用普通用户启动,使用

问题原因:
linux对于非root权限用户不能使用1024以下的端口,对于一些服务,过高的权限,会带来一定的风险。那么对于低权限的用户如何对外开放1024以下的端口。

方法一: 依次执行如下命令
  1. cd /usr/local/nginx/sbin/
  2. chown root nginx
  3. chmod u+s nginx
复制代码
优点:方便简单
缺点:既然sudo权限都不给了。这个set uid 最后也是让nginx运行在root权限下。 ps -ef |grep nginx 查看的时候,nginx的主进程是运行在root下的。 虽然是可以让普通用户运行nginx服务,但是不是所有nginx进程都在用户本身下运行

方法二:iptables端口转发
使用非80端口启动程序,然后再用iptables做一个端口转发。
  1. iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
  2. #用root用户直接去执行就可以了!
  3. (
  4. sysctl -w net.ipv4.ip_forward=1
  5. iptables -F -t nat #清空nat表
  6. iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to:8088
  7. )
复制代码
优点:可以用第三方用户直接启动,nginx的主进程就是用户本身来启动的。
缺点:额外增加开销,负载低的情况可以,负载高了 就不太好了

方案三:赋予nginx监听80端口的能力
nginx内核 超过2.1版本以后 出现了能力的说法
我们可以给/usr/local/nginx/sbin/nginx 赋予监听80端口的权限能力
  1. setcap cap_net_bind_service =+ep /usr/local/nginx/sbin/nginx
复制代码
这样就可以直接用普通用户启用nginx了。并且可以在高负载的情况下,减少由于端口转发部分的负载开销。

打赏鼓励作者,期待更多好文!

打赏
38人已打赏

发表新帖
热门标签
全部标签>
每日一问
技术盲盒
2024年技术争霸赛
技术笔记
干货满满
信服课堂视频
产品连连看
GIF动图学习
每周精选
新版本体验
2023技术争霸赛专题
秒懂零信任
功能体验
技术晨报
技术咨询
安全攻防
信服圈儿
自助服务平台操作指引
问题分析处理
运维工具
通用技术
华北区交付直播
答题自测
在线直播
安装部署配置
标准化排查
深信服技术支持平台
社区帮助指南
天逸直播
以战代练
齐鲁TV
北京区每日一练
畅聊IT
专家问答
技术圆桌
MVP
网络基础知识
升级
上网策略
测试报告
日志审计
流量管理
每日一记
云计算知识
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
玩转零信任
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
答题榜单公布
纪元平台
卧龙计划
华北区拉练
山东区技术晨报
文档捉虫活动

本版版主

12
185
6

发帖

粉丝

关注

本版达人

LoveTec...

本周分享达人

新手24116...

本周提问达人