nginx转发http,websocket,https请求配置

一,转发http请求,编辑nginx配置文件nginx.conf,ubuntu一般在/ect/nginx/目录

       在nginx.conf的http模块加入:

upstream svr_login {
        server xxx.xxx.xxx.xxx:port;        #转发目的地址与端口,可以配置多个
}
server {
        listen 8800;        #本机监听端口
        server_name localhost;
        location ~*^.+$ {
            proxy_pass http://svr_login;        #svr_login即上面定义,名字自己定义,对应即可
        }
}

二,转发websocket请求,也是在nginx.conf的http模块加入:   

    upstream ws_game {
        server xxx.xxx.xxx.xxx:port;        #转发目的地址与端口
    }

    server {
        listen 8301;                                #本机监听端口
        server_name localhost;
        location / {                                   #匹配协议用/,有人使用/ws或/websocket,试了不成功
            proxy_pass http://ws_game;#转发目标
            proxy_redirect off;      
            proxy_set_header Host $host;
            proxy_set_header X-Real_IP $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr:$remote_port;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;   
            proxy_set_header Connection upgrade;
        }
    }

编辑好后

重加载配置:nginx -s reload

重启:nginx -s reopen

三,这里额外加个配置https说明,也是在nginx.conf的http模块加入:   



    # HTTPS server
	#
	server {
            # https监听端口,默认433,但如果是自己的个人主机,电信会封此端口,所以可以用其它端口,注意不要用被占用的端口
        	listen 6001 ssl;
            # 请填写绑定证书的域名
        	server_name tt.gz-cube.com;
            #请填写证书文件的相对路径或绝对路径
        	ssl_certificate /etc/nginx/sslkey/xxx.pem; #这里是ssl key文件存放的绝对路径,根据自己的文件名称和路径来写
        	ssl_certificate_key /etc/nginx/sslkey/xxx.key; #这里是ssl key文件存放的绝对路径,根据自己的文件名称和路径来写

        	ssl_session_cache shared:SSL:1m;
        	ssl_session_timeout 5m;
		
        	ssl_ciphers HIGH:!aNULL:!MD5;
        	ssl_prefer_server_ciphers on;

        	location / {
                    # 如果此服务是作转发用,配置转发地址,下面的网站主面路径就不要
                	#proxy_pass http://localhost:8080/;
                    
                    # 网站主页路径
                	root html;
                	index index.html index.htm;
        	}
	}

如果要监听/转发多个https端口请求,可以配置多个https server

你可能感兴趣的:(nginx,http,websocket)