nginx websocket ip_해시 규칙
3669 단어 데이터 뱅 크
#user nobody;
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;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream webSockerNginx {
ip_hash;
server 172.16.55.62:8081 weight=10;
server 192.168.8.23:8083 weight=10;
}
server {
listen 8080;
server_name webSockerNginxServer;
location / {
#支持websocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
#解决 前端403问题
proxy_set_header Origin "";
#解决IP问题
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_connect_timeout 3600s; #配置点1
proxy_read_timeout 3600s; #配置点2,如果没效,可以考虑这个时间配置长一点
proxy_send_timeout 3600s; #配置点3
proxy_pass http://webSockerNginx;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
백 엔 드 코드
springboot + spring - websocket 데모 다운로드
https://download.csdn.net/download/whiteforever/10630375
프로젝트 를 다운로드 한 후 서로 다른 네트워크 에 각각 이 demo 프로젝트 를 배치 합 니 다.
프로젝트 에서 환경 변수 에 따라 시스템 변 수 를 설정 합 니 다.
spring.profiles.active=dev8081 window ip 172.16.55.62 에 배치
spring. profiles. active = dev 8082 는 Liux ip 192.168.8.23 에 배치 되 었 습 니 다.
프로젝트 를 실행 가능 한 jar 패키지 로 만들어 각각 IP 네트워크 에 배 치 된 서버 로 시작 합 니 다.
시작 nginx
window 에서 웹 socket 페이지 를 방문 한 후 서버 의 로 그 를 봅 니 다.
http://172.16.55.62:8080/html/user.html
이 웹 소켓 이 Liux 가 시작 한 서버 에 연결 되 어 있 음 을 표시 합 니 다.
Liux 에서 websocket 연결 Liux 명령 을 열 면 다음 과 같 습 니 다.
curl --include --no-buffer --header "Connection: Upgrade" --header "Upgrade: websocket" --header "Host: example.com:80" --header "Origin: http://example.com:80" --header "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" --header "Sec-WebSocket-Version: 13" http://172.16.55.62:8080/websocket/socketServer
Liux 에서 열 린 websocket 이 windows 가 시작 하 는 서버 에 연결 되 어 있 는 것 을 발견 하 였 습 니 다.
이로써 웹 소켓 은 nginx 를 통 해 부하 균형 을 이 루 는 효과 가 실현 되 었 다.
주:
이 방안 의 단점 은 다음 과 같다.
1.nginx 를 통한 ip 이 니까.hash 가 부하 하기 때문에 nginx 는 구조의 첫 번 째 입구 로 해 야 합 니 다. 그렇지 않 으 면 IP 를 얻 지 못 할 수도 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
nginx websocket ip_해시 규칙프로젝트 를 다운로드 한 후 서로 다른 네트워크 에 각각 이 demo 프로젝트 를 배치 합 니 다. 프로젝트 에서 환경 변수 에 따라 시스템 변 수 를 설정 합 니 다. spring.profiles.active=de...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.