Skip to content

nginx配置参考

John Smith edited this page Oct 11, 2023 · 2 revisions

nginx配置参考

sudo vim /etc/nginx/sites-enabled/blivechat.conf

upstream blivechat {
	keepalive 8;
	# blivechat地址
	server 127.0.0.1:12450;
}

# 强制HTTPS
server {
	listen 80;
	listen [::]:80;
	server_name YOUR.DOMAIN.NAME;

	return 301 https://$server_name$request_uri;
}

server {
	listen 443 ssl;
	listen [::]:443 ssl;
	server_name YOUR.DOMAIN.NAME;

	# SSL
	ssl_certificate /PATH/TO/CERT.crt;
	ssl_certificate_key /PATH/TO/CERT_KEY.key;

	set $blivechat_path /PATH/TO/BLIVECHAT;

	client_body_buffer_size 256k;
	client_max_body_size 1.1m;

	# 代理header
	proxy_http_version 1.1;
	proxy_set_header Host $host;
	proxy_set_header Connection "";
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

	# 静态文件
	location / {
		root $blivechat_path/frontend/dist;
		try_files $uri $uri/ @index;
	}
	# 不存在的文件请求转发到index.html,交给前端路由
	location @index {
		rewrite ^ /index.html last;
	}
	location = /index.html {
		root $blivechat_path/frontend/dist;
		# index.html不缓存,防止更新后前端还是旧版
		add_header Cache-Control no-cache;
	}

	location /emoticons {
		alias $blivechat_path/data/emoticons;
	}

	location /custom_public {
		alias $blivechat_path/data/custom_public;
		add_header Cache-Control no-cache;
	}

	# 动态API
	location /api {
		proxy_pass http://blivechat;
	}

	# websocket
	location = /api/chat {
		proxy_pass http://blivechat;

		# 代理websocket必须设置
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection "Upgrade";

		# 由于这个块有proxy_set_header,这些不会自动继承
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	}
}