nginx4层转发的模块默认编译进去了吗
本帖最后由 蛋蛋的蛋 于 2019-4-29 10:08 编辑用的是1.5稳定版
需要做个端口转发,
请问下军哥 upstream 模块默认编译了吗
我怎么报错了。
该怎么编译呢,
补充内容 (2019-4-29 10:20):
1 upstream aa {
2 server 127.0.0.1:3306;
3 }
4
5 server {
6 listen 3307;
7 proxy_pass aa;
8 }
说我第7行报错了。郁闷 四层协议转发是stream模块,upstream是
lnmp 1.5及以上是默认编译安装了stream模块的
之前的lnmp版本可以下载1.6的安装脚本,使用里面的升级脚本对nginx进行升级 本帖最后由 蛋蛋的蛋 于 2019-4-29 11:15 编辑
谢谢军哥回复。
发现问题了 proxy_pass aa;
不加http就报错,加上proxy_pass http://bbs_http; 就不报错了
可我那些是tcp,不是http的。还是因为那upstream 没编译吗
那可以这样理解,
upstream是4层模块
stream是7层模块
:o
本帖最后由 蛋蛋的蛋 于 2019-4-29 11:45 编辑
stream {
upstream stream_backend {
least_conn;
server backend1.example.com:12345 weight=5;
server backend2.example.com:12345 max_fails=2 fail_timeout=30s;
server backend3.example.com:12345 max_conns=3;
}
upstream dns_servers {
least_conn;
server 192.168.136.130:53;
server 192.168.136.131:53;
server 192.168.136.132:53;
}
server {
listen 12345;
proxy_pass stream_backend;
proxy_timeout 3s;
proxy_connect_timeout 1s;
}
server {
listen 53 udp;
proxy_pass dns_servers;
}
server {
listen 12346;
proxy_pass backend4.example.com:12346;
}
}https://i.loli.net/2019/04/29/5cc673434e3ff.png
我错了。这是官方的文档,但为啥 proxy_pass aa; 这样就报错呢。直接提示语法有错误,
nginx: "proxy_pass" directive is not allowed here in /usr/local/nginx/conf/vhost/forxieyi.conf:3
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed 解决了stream配置不能放到http模块内在 vhost 文件夹下面创建的 都是在http模块下面。要回到上层目录 nginx.conf里面配置
stream段的配置必须是要在http段前面的,你可以检测配置文件顺序是否有问题,要不贴出全部配置文件看一下
你这个vhost目录的是属于http的
嗯嗯。谢谢军哥。现在配置好了,
想取客户端ip转发过去,
server {
listen 12346;
proxy_pass backend4.example.com:12346;
}
该怎么配置呢。目前转发过去的ip 是转发服务器的ip 蛋蛋的蛋 发表于 2019-4-29 12:48
嗯嗯。谢谢军哥。现在配置好了,
想取客户端ip转发过去,
proxy_set_header X-Real-IP$remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 谢谢军哥,这样设置貌似只对下个服务器是nginx 有效,
但是我那是一个软件程序,获取的ip还是服务器的ip 蛋蛋的蛋 发表于 2019-4-30 11:01
谢谢军哥,这样设置貌似只对下个服务器是nginx 有效,
但是我那是一个软件程序,获取的ip还是服务器的ip ...
你程序上获取这个X-Real-IP的header不就行了
页:
[1]