server {
# listen 443 http2; # 开启http2
listen 80 default_server;
listen [::]:80 default_server;
# 此处是修改Nginx文件上传默认大小是10M,改成100M
client_max_body_size 100M;
client_header_buffer_size 1280000k;
large_client_header_buffers 4000000 12800000k;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name lukes.top;
location / {
# 预加载style.css,一般不配置,根据需要配置
early_hints /style.css,;
# hash模式路由
#try_files $uri $uri/ =404;
# history模式路由
try_files $uri $uri/ /index.html;
# 移动端自适应
if ($http_user_agent ~* '(Android|webOS|iPhone|iPod|BlackBerry)') {
root /var/www/m;
}
}
# 静态文件如:http://127.0.0.1/assets/index-CmSvOJiQ.js的请求,将请求转发到/var/www/m/assets/目录下
location ^~ /assets/ {
alias /var/www/m/assets/;
expires 30d; # 缓存 30 天
}
location /static/ {
alias /path/to/static/files/; # 指定静态文件的实际路径
# 可选:设置缓存头
expires 30d; # 缓存 30 天
add_header Cache-Control "public";
}
# 配置 http://www.lukes.top/pro
location /pro {
alias /var/www/pro;
}
# 配置 http://www.lukes.top/vue
location /vue {
alias /var/www/simple-vue;
}
# 长连接反向代理配置,注意:线上不能代理到本机的开发环境
location ^~ /web {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
proxy_pass http://www.lukes.top:8888;
}
# 反向代理并设置请求重定向
location /api1 {
proxy_set_header Host http://www.lukes.top;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header REMOTE-HOST $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://www.lukes.top:8888;
rewrite ^/api1/(.*) /api/$1 break; # /api1 重定向 /api
}
# ws://127.0.0.1/wss 前端请求接口的地址,这个名字不能已web开头
# https://www.nginx.com/blog/websocket-nginx
location /wss{
proxy_read_timeout 7200s;
proxy_send_timeout 7200s;
proxy_connect_timeout 7200s;
proxy_pass http://192.168.0.110:8080/ws;
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-Real-Port $remote_port; # 非必需
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 非必需
proxy_set_header X-Forwarded-Protocol "$scheme"; # 非必需
}
# 配置更新包的静态目录
location /updater {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Credentials true;
add_header Access-Control-Allow-Methods GET,POST;
alias /var/www/updater;
sendfile on;
autoindex on;
}
}
# 配置二级域名 m.lukes.top
server {
listen 80;
listen [::]:80;
server_name m.lukes.top;
root /var/zpack;
index index.html;
# 将 m.lukes.top以请求转发到 http://www.lukes.top:3000
location / {
try_files $uri $uri/ /index.html;
proxy_pass http://www.lukes.top:3000;
}
}
# 配置二级域名 note.lukes.top
server {
listen 80;
listen [::]:80;
server_name note.lukes.top;
root /var/www/biji;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
# Nginx配置gzip压缩
server {
gzip on;
gzip_disable "msie6"; # 禁止 IE6 使用 gzip
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
gzip_vary on;
# 优先返回 gzip 版本的文件
location / {
try_files $uri $uri.gz $uri/ =404;
add_header Content-Encoding gzip;
}
}
https://tool.oschina.net/apidocs/apidoc?api=nginx-zh