#user www;
worker_processes 1;
error_log /logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid /logs/nginx.pid;
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 65535;
}
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;
#charset gb2312;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
#tcp_nopush on;
keepalive_timeout 600;
tcp_nodelay on;
#gzip on;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream websocket{
server 192.168.13.118:8999 weight=1 max_fails=3 fail_timeout=30s;
server 192.168.13.118:444 weight=1 max_fails=3 fail_timeout=30s;
}
upstream websocket_ssl {
ip_hash; #避免单个连接混连服务器
server 192.168.13.118:8000 weight=1 max_fails=3 fail_timeout=30s;
server 192.168.13.118:8001 weight=1 max_fails=3 fail_timeout=30s;
}
#不带证书验证
server {
listen 8046;
server_name localhost;
index index.html index.htm index.php;
root html;
#charset koi8-r;
access_log logs/host.access.log main;
location /
{
proxy_pass http://websocket;
# WebScoket Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
access_log off;
}
# HTTPS server
#带证书验证
server {
listen 8085 ssl so_keepalive=on;
server_name localhost;
#证书路径
ssl_certificate /conf/ssl/server.crt;
ssl_certificate_key /conf/ssl/server.key;
ssl_session_timeout 5m;
location /ws {
#设置连接时间参数
proxy_connect_timeout 30s;
proxy_read_timeout 1800s;
proxy_send_timeout 120s;
proxy_pass https://websocket_ssl;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}