upstream im_msg_gateway{ server 127.0.0.1:10001; #IM Message server address Multiple can be specified according to the deployment } upstream im_api{ server 127.0.0.1:10002; #IM Group user api server address Multiple can be specified according to the deployment } upstream im_grafana{ server 127.0.0.1:10007; #IM Statistical server address The machine where docker-compose starts } upstream im_chat_api{ server 127.0.0.1:10008; #IM Business version login registration server address Multiple can be specified according to the deployment } upstream im_admin_api{ server 127.0.0.1:10009; #IM The admin address of the commercial version can specify multiple units according to the deployment situation } upstream im_open_rtc{ server 127.0.0.1:7880; #rtc Audio and video call server address Multiple devices can be specified according to the deployment } upstream minio_s3_2 { least_conn; server 127.0.0.1:10005; } upstream minio_console_2 { least_conn; server 127.0.0.1:9090; } server { listen 443; server_name your-domain.com; #your-domain.com ssl on; ssl_certificate /etc/nginx/conf.d/ssl/your-domain.com.crt; #2 Certificate ssl_certificate_key /etc/nginx/conf.d/ssl/your-domain.com.key; #3 Certificate ssl_session_timeout 5m; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_comp_level 2; gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/wasm; gzip_vary off; gzip_disable "MSIE [1-6]\."; error_page 405 =200 $uri; default_type application/wasm; location /{ #web demo proxy_set_header Host $host; proxy_set_header X-Real-Ip $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-NginX-Proxy true; root /data1/online/Pc-Web-Demo/build/; # web im static resource storage path index index.html; try_files $uri $uri/ /index.html; } location /msg_gateway { #10001 ws proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header X-real-ip $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://im_msg_gateway/; } location ^~/api/ { #10002 api proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header X-real-ip $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Request-Api $scheme://$host/api; proxy_pass http://im_api/; } location ^~/grafana/ { #10007 prometheus proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header X-real-ip $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://im_grafana/; } location ^~/chat/ { #10008 im_chat_api proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header X-real-ip $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://im_chat_api/; } location ^~/complete_admin/ { #10009 admin proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header X-real-ip $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://im_admin_api/; } location ^~/open_rtc/ { #7880 rtc proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header X-real-ip $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://im_open_rtc/; } } server { listen 80; server_name test-web.rentsoft.cn ; #1 web im end domain name rewrite ^(.*)$ https://${server_name}$1 permanent; } server { listen 443; server_name your-domain.com; #your-domain.com ssl on; ssl_certificate /etc/nginx/conf.d/ssl/your-domain.com.crt; #Certificate ssl_certificate_key /etc/nginx/conf.d/ssl/your-domain.com.key; #Certificate gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_comp_level 2; gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/wasm; gzip_vary off; gzip_disable "MSIE [1-6]\."; # Allow special characters in headers ignore_invalid_headers off; # Allow any size file to be uploaded. # Set to a value such as 1000m; to restrict file size to a specific value client_max_body_size 0; # Disable buffering proxy_buffering off; proxy_request_buffering off; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_connect_timeout 300; # Default is HTTP/1, keepalive is only enabled in HTTP/1.1 proxy_http_version 1.1; proxy_set_header Connection ""; chunked_transfer_encoding off; proxy_pass http://minio_s3_2; # This uses the upstream directive definition to load balance } location /minio/ui { rewrite ^/minio/ui/(.*) /$1 break; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-NginX-Proxy true; # This is necessary to pass the correct IP to be hashed real_ip_header X-Real-IP; proxy_connect_timeout 300; # To support websockets in MinIO versions released after January 2023 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; chunked_transfer_encoding off; proxy_pass http://minio_console_2; # This uses the upstream directive definition to load balance } }