website-01/docker/nginx.conf
2026-06-22 14:58:27 +08:00

113 lines
3.5 KiB
Nginx Configuration File
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Generated by nginxconfig.io
# See nginxconfig.txt for the configuration share link
user nginx;
pid /var/run/nginx.pid;
worker_processes auto;
worker_rlimit_nofile 65535;
# Load modules
include /etc/nginx/modules-enabled/*.conf;
events {
multi_accept on;
worker_connections 65535;
}
http {
charset utf-8;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;
log_not_found off;
types_hash_max_size 2048;
types_hash_bucket_size 64;
client_max_body_size 16M;
# MIME
include mime.types;
default_type application/octet-stream;
# Logging
access_log /dev/stdout;
error_log /dev/stderr warn;
# 上游 Next.js 服务器(端口 3003
upstream nextjs {
# 使用容器名称(如果在同一个 Docker 网络)
server website-01:3002;
# 如果使用宿主机 IP取消下面这行注释并注释上面那行
# server 172.17.0.1:3002;
keepalive 64;
}
# HTTP 服务器
server {
listen 8085;
listen [::]:8085;
server_name _;
# 静态资源缓存(由 Next.js 提供)
location /_next/static {
proxy_pass http://nextjs;
proxy_http_version 1.1;
proxy_set_header Connection "";
expires 365d;
add_header Cache-Control "public, immutable";
}
location /static {
proxy_pass http://nextjs;
proxy_http_version 1.1;
proxy_set_header Connection "";
expires 365d;
add_header Cache-Control "public, immutable";
}
# 图标文件缓存
location ~* \.(ico|svg|png|jpg|jpeg|gif|webp)$ {
proxy_pass http://nextjs;
expires 30d;
add_header Cache-Control "public, immutable";
}
# API 路由代理
location /api {
proxy_pass http://nextjs;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
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_cache_bypass $http_upgrade;
# 超时设置
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}
# 所有其他请求代理到 Next.jsSSR
location / {
proxy_pass http://nextjs;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
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_cache_bypass $http_upgrade;
}
# gzip
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml;
}
}