域名直接访问应用程序-不加端口号&不加路径名&不配nginx

在Linux系统中,80端口默认仅限root用户使用。为了解决这个问题,可以通过iptables进行端口映射,将80端口流量重定向到8080端口。然后将应用程序部署到Web服务根目录,并设置为监听8080端口。重启Web服务后,即可实现非root用户通过80端口访问应用。

当访问域名的时候,端口默认指定的是80;

而80端口在Linux系统下,1024之前的端口是只有root用户才能使用的,

因此将,系统层面将端口80 映射到8080,(系统层面,模拟nginx代理功能)

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

应用层面,将开发的程序移动到web服务根目录下,将程序指定端口为8080

重新启动web服务,OK!

### 解决多级Nginx代理后重定向时域名后带上端口的问题 在多级 Nginx 反向代理的场景中,当后端服务返回重定向响应时,可能会导致浏览器跳转到错误的地址,例如域名后面带上监听的非标准端口号。这种问题通常与 `proxy_set_header Host` 的配置以及后端服务生成的重定向 URL 有关。 以下是一个经过优化的 Nginx 配置示例,可以有效避免多级代理后重定向时域名后出现端口号的问题: ```nginx server { listen 9123; server_name example.com; location / { proxy_pass http://127.0.0.1:8888; proxy_set_header Host $host; # 确保只传递主机名而不包含端口号 proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_redirect http://example.com:9123/ http://example.com/; # 修正重定向路径 } location /static { alias /opt/archer/static; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } ``` 上述配置的关键点在于: - 使用 `proxy_set_header Host $host`[^1],确保只传递主机名而不包含端口号- 添加 `proxy_redirect` 指令[^4],将后端服务返回的重定向 URL 中的非标准端口号替换为标准的域名路径。 #### 关于 `proxy_set_header Host` 默认情况下,Nginx 在反向代理请求时会通过 `proxy_set_header Host` 将原始请求中的 `Host` 头部转发给后端服务。如果未正确设置,可能导致后端服务生成的重定向 URL 包含非标准端口号。通过明确指定 `$host`,可以确保只传递主机名[^1]。 #### 关于 `proxy_redirect` `proxy_redirect` 指令用于修改后端服务返回的重定向 URL。例如,当后端服务返回 `http://example.com:9123/some/path` 时,可以通过 `proxy_redirect` 将其转换为 `http://example.com/some/path`[^4]。 #### 后端服务的配合 除了 Nginx 配置外,还需要确保后端服务(如 Django 或 Flask)能够正确生成相对路径或基于环境变量的重定向 URL。例如,在 Django 中可以通过设置 `USE_X_FORWARDED_HOST = True` 和 `SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')` 来支持反向代理环境下的重定向[^2]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呃顺哇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值