nginx使用stream配置代理

某些系统中需要设置用户为root才可以运行nginx

user  root;
worker_processes  1;

安装nginx是添加配置

--with-http_stub_status_module --with-http_ssl_module  --with-stream --with-http_realip_module --with-stream_ssl_preread_module

stream配置

stream {
    # http配置和访问路径
	upstream web_http {
		server 127.0.0.1:4700;
	}
    # https配置和访问路径
	upstream web_https {
		server 127.0.0.1:4600;
	}
    # ssl配置和tls协议配置
	map $ssl_preread_protocol $upstream {
		default web_http;
		"TLSv1.2" web_https;
		"TLSv1.3" web_https;
	}

	# 监听端口和相关配置
	server {
		listen 0.0.0.0:6300;
		proxy_pass $upstream;
        # ip地址获取
		proxy_protocol on;
        # 协议检测和访问控制
		ssl_preread on;
	}
}

http和https配置

http {
	include       mime.types;
	default_type  application/octet-stream;

	log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
					    '$status $body_bytes_sent "$http_referer" '
						'"$http_user_agent" "$http_x_forwarded_for"';

	access_log  logs/access.log  main;
	limit_conn_zone $binary_remote_addr zone=one:500m;

	sendfile        on;
	keepalive_timeout  65;

	client_header_timeout 180; 
	client_body_timeout 180; 
	client_max_body_size 5000M;

	server_tokens off;
	include conf/*.conf;

    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }

	server{
		listen       4600 ssl proxy_protocol;
		server_name  localhost;

		ssl_certificate      server.crt;
		ssl_certificate_key  server.key;
        
		ssl_session_cache    shared:SSL:1m;
		ssl_session_timeout  5m;

		ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
		ssl_prefer_server_ciphers  on;
           
		set_real_ip_from 127.0.0.1;
		set_real_ip_from 192.168.44.158;
		real_ip_header proxy_protocol;

		charset utf-8;
		proxy_connect_timeout 180;
		proxy_send_timeout 180;
		proxy_read_timeout 180;

        proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

		error_page 404 /404.html;
		location = /404.html {
            root   html;
		}		
		location  / {
			proxy_pass http://127.0.0.1:9500;
			proxy_http_version 1.1;
			proxy_set_header Upgrade $http_upgrade;
 			proxy_set_header Connection "upgrade";
			proxy_set_header Host $host;
		}
	}

	server {
        listen       4700 proxy_protocol;
	    server_name  localhost;
        
	    set_real_ip_from 127.0.0.1;
		real_ip_header proxy_protocol;

		charset utf-8;
		proxy_connect_timeout 180;
		proxy_send_timeout 180;
		proxy_read_timeout 180;

        proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

		error_page 404 /404.html;
		location = /404.html {
			root   html;
		}
		location  / {
			proxy_pass http://127.0.0.1:9500;
			proxy_http_version 1.1;
			proxy_set_header Upgrade $http_upgrade;
 			proxy_set_header Connection "upgrade";
			proxy_set_header Host $host;
		}
	} 

	server {
        listen       9500 ;
	    server_name  localhost;

	    set_real_ip_from 127.0.0.1;
		real_ip_header proxy_protocol;

		proxy_connect_timeout 180;
		proxy_send_timeout 180;
		proxy_read_timeout 180;

		root html;

		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		
        # 接口代理
		location /api {
			proxy_pass http://127.0.0.1:6201/api;
			proxy_http_version 1.1;
            proxy_connect_timeout 14s;                
            proxy_read_timeout 60s;
            proxy_send_timeout 12s;
			proxy_set_header Upgrade $http_upgrade;
 			proxy_set_header Connection "upgrade";
		}
        # 文件访问代理
        location /file/api {
			proxy_pass http://127.0.0.1:9000/api;
			proxy_http_version 1.1;
			proxy_set_header Upgrade $http_upgrade;
 			proxy_set_header Connection "upgrade";
		}
        # vue代理
		location /vue {
			try_files $uri $uri /vue/index.html;
			index  vue/index.html vue/index.htm;
		}
        
    }
}

整体conf配置

user  root;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}

stream {
    # http配置和访问路径
	upstream web_http {
		server 127.0.0.1:4700;
	}
    # https配置和访问路径
	upstream web_https {
		server 127.0.0.1:4600;
	}
    # ssl配置和tls协议配置
	map $ssl_preread_protocol $upstream {
		default web_http;
		"TLSv1.2" web_https;
		"TLSv1.3" web_https;
	}

	# 监听端口和相关配置
	server {
		listen 0.0.0.0:6300;
		proxy_pass $upstream;
        # ip地址获取
		proxy_protocol on;
        # 协议检测和访问控制
		ssl_preread on;
	}
}

http {
	include       mime.types;
	default_type  application/octet-stream;

	log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
					    '$status $body_bytes_sent "$http_referer" '
						'"$http_user_agent" "$http_x_forwarded_for"';

	access_log  logs/access.log  main;
	limit_conn_zone $binary_remote_addr zone=one:500m;

	sendfile        on;
	keepalive_timeout  65;

	client_header_timeout 180; 
	client_body_timeout 180; 
	client_max_body_size 5000M;

	server_tokens off;
	include conf/*.conf;

    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }

	server{
		listen       4600 ssl proxy_protocol;
		server_name  localhost;

		ssl_certificate      server.crt;
		ssl_certificate_key  server.key;
        
		ssl_session_cache    shared:SSL:1m;
		ssl_session_timeout  5m;

		ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
		ssl_prefer_server_ciphers  on;
           
		set_real_ip_from 127.0.0.1;
		set_real_ip_from 192.168.44.158;
		real_ip_header proxy_protocol;

		charset utf-8;
		proxy_connect_timeout 180;
		proxy_send_timeout 180;
		proxy_read_timeout 180;

        proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

		error_page 404 /404.html;
		location = /404.html {
            root   html;
		}		
		location  / {
			proxy_pass http://127.0.0.1:9500;
			proxy_http_version 1.1;
			proxy_set_header Upgrade $http_upgrade;
 			proxy_set_header Connection "upgrade";
			proxy_set_header Host $host;
		}
	}

	server {
        listen       4700 proxy_protocol;
	    server_name  localhost;
        
	    set_real_ip_from 127.0.0.1;
		real_ip_header proxy_protocol;

		charset utf-8;
		proxy_connect_timeout 180;
		proxy_send_timeout 180;
		proxy_read_timeout 180;

        proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

		error_page 404 /404.html;
		location = /404.html {
			root   html;
		}
		location  / {
			proxy_pass http://127.0.0.1:9500;
			proxy_http_version 1.1;
			proxy_set_header Upgrade $http_upgrade;
 			proxy_set_header Connection "upgrade";
			proxy_set_header Host $host;
		}
	} 

	server {
        listen       9500 ;
	    server_name  localhost;

	    set_real_ip_from 127.0.0.1;
		real_ip_header proxy_protocol;

		proxy_connect_timeout 180;
		proxy_send_timeout 180;
		proxy_read_timeout 180;

		root html;

		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		
        # 接口代理
		location /api {
			proxy_pass http://127.0.0.1:6201/api;
			proxy_http_version 1.1;
            proxy_connect_timeout 14s;                
            proxy_read_timeout 60s;
            proxy_send_timeout 12s;
			proxy_set_header Upgrade $http_upgrade;
 			proxy_set_header Connection "upgrade";
		}
        # 文件访问代理
        location /file/api {
			proxy_pass http://127.0.0.1:9000/api;
			proxy_http_version 1.1;
			proxy_set_header Upgrade $http_upgrade;
 			proxy_set_header Connection "upgrade";
		}
        # vue代理
		location /vue {
			try_files $uri $uri /vue/index.html;
			index  vue/index.html vue/index.htm;
		}
        
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
stream配置是用于配置Nginx作为TCP或UDP代理服务器的一种配置方式。通过stream模块可以实现将客户端请求转发到后端的服务器。根据引用和引用的内容,可以得到以下关于nginx stream配置的详解: 1. 配置位置:stream配置通常位于Nginx配置文件中,可以在/etc/nginx/nginx.conf或/usr/local/nginx/nginx.conf中找到。 2. upstream指令:使用upstream指令定义后端服务器的地址和端口。在引用和引用中的示例中,后端服务器的地址为192.168.208.1,端口为3000。 3. server指令:使用server指令定义代理服务器的监听端口。在引用和引用中的示例中,监听的端口为2000,使用UDP协议。 4. proxy_connect_timeout和proxy_timeout指令:这两个指令分别用于设置与后端服务器建立连接的超时时间和代理请求的超时时间。在示例中,连接超时时间设置为5秒,请求超时时间设置为300秒。 5. proxy_pass指令:使用proxy_pass指令将客户端的请求转发到后端的服务器。在引用和引用中的示例中,请求会被转发到名为back的upstream集群。 总结起来,stream配置主要包括定义后端服务器和代理服务器的指令。通过使用stream模块,可以实现TCP和UDP代理服务器的配置和管理。123 #### 引用[.reference_title] - *1* *2* *3* [Nginx安装并配置stream详细教程](https://blog.csdn.net/qq_42703181/article/details/119422790)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yingyuehuixing

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

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

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

打赏作者

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

抵扣说明:

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

余额充值