四川人防工程建设网站公司网站排名优化手段
2026/4/6 11:15:24 网站建设 项目流程
四川人防工程建设网站,公司网站排名优化手段,广西灵山县住房和城乡建设局网站,阿里巴巴网址Nginx配置看起来简单#xff0c;但坑真的多。 有些错误你可能永远发现不了#xff08;直到出事#xff09;#xff0c;有些错误会让你排查半天。整理一下常见的坑和调优经验。 proxy_pass结尾的斜杠 这个坑很常见。 # 前端请求 /api/users# 写法1 location /api {proxy_pas…Nginx配置看起来简单但坑真的多。有些错误你可能永远发现不了直到出事有些错误会让你排查半天。整理一下常见的坑和调优经验。proxy_pass结尾的斜杠这个坑很常见。# 前端请求 /api/users # 写法1 location /api { proxy_pass http://backend; } # 后端收到/api/users # 写法2多了个斜杠 location /api { proxy_pass http://backend/; } # 后端收到/users ← /api没了就差一个斜杠效果完全不一样。简单记proxy_pass后面带路径包括单独的/location匹配的部分会被替换掉不带路径原样转发。location匹配不是你想的那样location /api { proxy_pass http://backend; } location ~ /api/v[0-9] { proxy_pass http://backend-new; }访问/api/v2/users你觉得走哪个很多人以为按顺序其实不是。正则匹配~优先于普通前缀匹配。所以走的是第二个。但如果你想让某个路径不走正则location ^~ /api/internal { # ^~ 会阻止后面的正则匹配 proxy_pass http://internal-backend; } location ~ /api { proxy_pass http://backend; }^~前缀匹配的优先级比正则高。完整优先级精确 ^~前缀 ~正则 普通前缀取最长Vue/React项目刷新404单页应用部署后直接访问首页没问题但刷新或直接访问子路由就404。location / { root /var/www/dist; try_files $uri $uri/ /index.html; }这个配置应该没问题但还是404检查这几个1、index.html存在吗ls-la/var/www/dist/index.html2、SELinuxCentOS的大坑getenforce# 如果是Enforcing# 临时关闭测试setenforce0# 或者正确设置contextchcon-R-thttpd_sys_content_t /var/www/distSELinux是CentOS上的常见坑。502 Bad Gateway高并发的时候出现502后端其实没挂。通常是upstream的连接数不够了。加上keepaliveupstream backend { server 127.0.0.1:8080; keepalive 100; # 保持100个空闲连接 } location / { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Connection ; # 这行很重要 }Connection 是为了让Nginx用HTTP/1.1的keepalive不然每次请求都新建连接。上传大文件413413 Request Entity Too LargeNginx默认只允许1M的请求体client_max_body_size 100m;放在http、server或location块都行。WebSocket老断WebSocket连上没多久就断了通常是超时location /ws { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; # 关键超时设成长一点 proxy_read_timeout 3600s; proxy_send_timeout 3600s; }默认60秒没数据就断了WebSocket要设长一点。缓存设了不生效location ~* \.(js|css|png)$ { expires 30d; }配置了但浏览器还是每次都请求检查后端有没有返回Cache-Control: no-cache这会覆盖你的设置。location ~* \.(js|css|png)$ { proxy_pass http://backend; proxy_ignore_headers Cache-Control Expires; # 忽略后端的 expires 30d; }性能调优worker数量worker_processes auto; # 自动等于CPU核数 events { worker_connections 10240; use epoll; multi_accept on; }Gzipgzip on; gzip_min_length 1k; # 太小的不压缩 gzip_comp_level 5; # 压缩级别5够用了 gzip_types text/plain text/css application/json application/javascript;静态文件location ~* \.(js|css|png|jpg|gif|ico)$ { expires 1y; access_log off; # 静态文件不记日志省IO }sendfilesendfile on; # 零拷贝 tcp_nopush on; # 合并小包 tcp_nodelay on;常用配置模板反向代理模板server { listen 80; server_name api.example.com; location / { proxy_pass http://127.0.0.1:8080; 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; } }前端SPA模板server { listen 80; server_name www.example.com; root /var/www/dist; location / { try_files $uri $uri/ /index.html; } location /api { proxy_pass http://127.0.0.1:8080; } location ~* \.(js|css|png|jpg|svg|woff2)$ { expires 1y; } }调试技巧检查配置nginx-t# 语法检查nginx-T# 打印完整配置打印变量不确定变量值是什么的时候location /debug { return 200 uri$uri\nhost$host\nargs$args\n; }看连接状态location /status { stub_status on; allow 127.0.0.1; deny all; }然后curl localhost/status看当前连接数。Nginx的坑基本就这些配置的时候多注意斜杠、匹配顺序、超时时间能避免大部分问题。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询