跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 卖家故事 > Nginx 实现端口转发

Nginx 实现端口转发

时间:2024-04-06 17:30:38 来源:网络cs 作者:亙句 栏目:卖家故事 阅读:

标签: 实现 
阅读本书更多章节>>>>

Nginx 实现端口转发

首先我们需要找到服务器部署的nginx的配置文件nginx.conf:

找到如下代码段实现配置端口转发

# nginx代理转发 server {    listen  80;    server_name     x.x.x.x;    location / {        proxy_set_header Host $host;        proxy_pass      http://localhost:8080; # 当你访问80端口可以实现向8080端口转发    }}
# 编译nginx的时候要添加stream模块  ./configure –with-stream# 这个模块实现了网络层和传输层的的转发、代理、负载均衡等 # stream与http配置同级stream {   server {       listen 3306;       proxy_connect_timeout 1s;       proxy_timeout 300s;       proxy_pass 192.168.8.168:3306;       # 有了这个server配置,你就可以通过代理机ip+3306端口访问内网的mysql库了   }    server {      listen 3000;      proxy_connect_timeout 1s;      proxy_timeout 300s;      proxy_pass 192.168.8.110:3000;      # 有了这个配置,你就可以直接访问代理机ip+8080端口,访问你的内网web服务了  }  # 还可以设置指定的客户端IP访问(白名单设置)  # 自己百度更多功能吧}#直接复制可能有问题,几行代码就自己打吧stream {    server {        listen 3306;        proxy_connect_timeout 1s;        proxy_timeout 300s;        proxy_pass 192.168.8.110:3306;    }        server {        listen 3000;        proxy_connect_timeout 1s;        proxy_timeout 300s;        proxy_pass 192.168.8.110:3000;    }}

其中有几个配置,我们一个一个讲:

[root@cdh2 ~]# yum -y install nginx-all-modules.noarch[root@cdh2 ~]# nginx -tnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful[root@cdh2 ~]# systemctl restart nginx

listen:

表示你该配置的server所监听的端口号。

server_name:

用于设置虚拟主机服务名称,如:127.0.0.1 、 localhost 、域名

例如,在windows本地主机上进行修改该配置,则当访问该名称时会被nginx拦截,这里或者直接在C:\WINDOWS\system32\drivers\etc\hosts修改,也能达到此效果。

location :

location后面跟着的路径匹配是你访问80端口时所匹配的路径,当匹配到该路径时会被拦截,并进行路径转发。你可以在一个server里面配置多个location。

下面是nginx路径匹配的规则

#路径完全一样则匹配location = path {} #路径开头一样则匹配location ^~ path{} #正则匹配,大小写敏感location ~ path{} #正则匹配,大小写不敏感location ~* path{} #前缀匹配location path{}

下面是路径匹配规则的实例

?、/、/*和/**的区别配置:

“/index?“能够匹配到”/indexA”,“/indexB”,可是不能匹配"/index",也不能匹配"/indexAA";请求

“/index*“能够匹配”/indexA”,“/indexAA”,可是不能匹配"/index/A";index*

"/index/“能够匹配”/index/“,”/index/A",“/index/AA”,“/index/ABC”,可是不能匹配"/index",也不能匹配"/index/A/B";

“/index/**“能够匹配”/index/“下的多个子路径,好比”/index/A/B/C/D”;

proxy_set_header:

允许重新定义或者添加发往后端服务器的请求头

(17条消息) Nginx proxy_set_header参数设置_summer_west_fish的博客-CSDN博客

(17条消息) nigix的proxy_set_header、proxy_pass、proxy_redirect_proxy_set_header proxy_pass_程序员的修养的博客-CSDN博客

这篇写的很详细哈

proxy_set_header       Host $http_host; ##$http_host:代理服务器本身IP,不改变请求头的值.##$proxy_host 会重新设置请求头##$host 请求未携带HOST请求头时为虚拟主机的主域名 proxy_set_header       X-Real-IP $remote_addr; proxy_set_header       X-Forwarded-For $proxy_add_x_forwarded_for;X-Forwarded-For: client1, proxy1, proxy2

proxy_pass:

你所想转发的路径。

proxy_redirect:

用来设置url重定向

yum -y install nginx-all-modules.noarch

解决nginx: [emerg] unknown directive “stream“ in /etc/nginx/nginx.conf问题

问题原因

在nginx中增加了这个配置

[root@k8s-node2 ~]# cat /etc/nginx/nginx.confstream {    upstream kube-apiserver {        server 192.168.10.64:6443     max_fails=3 fail_timeout=30s;        server 192.168.10.65:6443     max_fails=3 fail_timeout=30s;    }    server {        listen 7443;        proxy_connect_timeout 2s;        proxy_timeout 900s;        proxy_pass kube-apiserver;    }}

nginx -t报错
在这里插入图片描述

解决方法

# 安装nginx源curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo# 先安装yum -y install epel-release#应该是缺少modules模块yum -y install nginx-all-modules.noarch然后在用nginx -t就好了[root@k8s-node2 ~]# nginx -tnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful
阅读本书更多章节>>>>

本文链接:https://www.kjpai.cn/gushi/2024-04-06/154907.html,文章来源:网络cs,作者:亙句,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

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

文章评论