Skip to content

Instantly share code, notes, and snippets.

@gin-melodic
Last active November 22, 2023 09:06
Show Gist options
  • Save gin-melodic/3a64d86c044cc00c9ecb4be9654278df to your computer and use it in GitHub Desktop.
Save gin-melodic/3a64d86c044cc00c9ecb4be9654278df to your computer and use it in GitHub Desktop.
nginx反向代理配置示例
# stream
upstream ssh {
server 192.168.1.2:22;
}
server {
listen 2021;
proxy_pass ssh;
proxy_connect_timeout 1h;
proxy_timeout 1h;
}
# config
server {
listen 80;
server_name web.domain;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443;
server_name web.domain;
# logging
error_log /var/log/nginx/domain.error.log;
access_log /var/log/nginx/domain.access.log;
root /var/www/static;
index index.html;
location / {
proxy_pass http://192.168.1.2:3000;
proxy_http_version 1.1;
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_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
# setup for image upload
client_max_body_size 8192m;
# adjust proxy buffer setting
proxy_buffers 8 32k;
proxy_buffer_size 32k;
proxy_busy_buffers_size 64k;
proxy_max_temp_file_size 8192m;
proxy_read_timeout 300;
proxy_connect_timeout 300
}
}
@gin-melodic
Copy link
Author

gin-melodic commented Nov 20, 2023

Part of SSL configuration & log:

http {
  #...
  log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';
  #...
  ssl_certificate /etc/nginx/certs/domain.com/fullchain/fullchain.cer;
  ssl_certificate_key /etc/nginx/certs/domain.com/key/domain.com.key;
  ssl_session_timeout 5m;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4!DES;
  ssl_ecdh_curve secp521r1:secp384r1:prime256v1;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
  ssl_prefer_server_ciphers on;

  map $http_upgrade $connection_upgrade {
    default upgrade;
    ''   close;
  }
}

stream {
  log_format basic '$remote_addr [$time_local] '
                 '$protocol $status $bytes_sent $bytes_received '
                 '$session_time';
  access_log /var/log/nginx/stream-access.log basic buffer=32k;
  include /etc/nginx/conf.d/*.stream;
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment