nginx 端口转发

nginx 端口转发

0 背景

最近将一些docker上暴露的端口重新规划一下, 准备直接使用域名去访问docker的服务. 于是使用了nginx用作内部的转发服务.

Nginx是一个开源的高性能、轻量级的HTTP和反向代理服务器,也可以用作电子邮件(IMAP/POP3)代理服务器。它是一个模块化的、事件驱动的架构,广泛用于构建可靠、高性能的Web服务器。Nginx的主要特点包括高并发、低内存消耗、高稳定性和可靠性,适用于处理大量的并发连接。

它广泛用于各个网站的部署上, 它的一些好处包括:

  1. 高性能: 能够处理大量并发连接,适合用于高流量的网站和应用程序。
  2. 低内存消耗: 占用内存小的很。
  3. 可扩展性: 支持丰富的插件和模块化架构,可以根据需要扩展其功能,满足不同场景的需求。
  4. 反向代理和负载均衡: Nginx可以作为反向代理服务器,将请求转发到后端的应用服务器,并且支持负载均衡,平衡多台服务器的负载,提高系统的稳定性和性能。
  5. 静态资源服务: Nginx能够快速地提供静态文件(如HTML、CSS、JavaScript、图片等)的访问,减轻动态内容生成的服务器负担。
  6. 高度可定制化: 可以根据实际的需求进行定制和优化,以满足特定的业务需求。

1 使用

在使用之前, 我们已经安装好了nginx, 如果没有安装, 使用下面这个命令安装. 我的系统是ubuntu

sudo apt update
sudo apt install nginx

然后, 可以分别使用下面的命令, 查看 & 启动 & 停止 & 重启 nginx的系统服务

sudo systemctl status nginx
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx

然后, 可以在/etc/nginx/conf.d或者/etc/nginx/sites-enabled文件下下面新建一个.conf文件, 写一个server, 内容如下:

server {
listen 80;
server_name doc.orange.com;

location / {
proxy_pass http://localhost:5000;
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;
}
}

这里直接新建conf文件的原因是, 在/etc/nginx/nginx.conf的默认配置文件里, 已经包含了两行代码:

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

以上配置的作用是监听80端口上来自doc.orange.com域名的流量, 转发到内部5000端口上, 我的服务器部署了一个docker服务, 因为将外部访问doc.orange.com时, 服务会转发我内部的docker容器内.

其中:

proxy_pass http://localhost:5000; 是 将请求转发到本地的5000端口.

proxy_set_header X-Real-IP $remote_addr; 是传递真实客户端的IP地址, 这个还挺重要的, 不然都不知道是谁访问的

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 是传递所有前置代理服务器的IP地址.

proxy_set_header X-Forwarded-Proto $scheme; 是传递访问协议(http或https).

最后, 重新启动nginx服务 systemctl restart nginx, 即可.

2 关于

欢迎关注我的公众号


原文始发于微信公众号(其之):nginx 端口转发

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/204927.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!