nginxpublish

Ubuntu的nginx配置

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;
  }
}

# Nginx 资料文章

https://tool.oschina.net/apidocs/apidoc?api=nginx-zh

上次更新: