Nginx优化实战(简单,好用)
Nginx概述
- Nginx是什么
- 是一个高性能的HTTP和反向代理web服务器
- 因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名
- 谁在用
- 百度、京东、新浪、网易、腾讯、淘宝等。
- 反向代理及示意图
- 反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率.
- 反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率.
Nginx安装和配置
- 下载
- 可连接外网:yum install -y nginx
- 内网的话需要先下载rpm包,下载地址,自行选择对应的rpm包,rpm -ivh xxxx
- 优化配置
-
主配置文件(/etc/nginx/nginx.conf)
user nginx; worker_processes 8; worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; worker_rlimit_nofile 65535; error_log /var/log/nginx/error.log; pid /run/nginx.pid; include /usr/share/nginx/modules/*.conf; events { worker_connections 10240; use epoll; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m; server_tokens off; client_max_body_size 10m; gzip on; gzip_min_length 1k; gzip_buffers 4 32k; gzip_http_version 1.1; gzip_comp_level 6; gzip_types text/css text/xml application/javascript; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 4096; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; include /etc/nginx/mime.types; default_type application/octet-stream; include /etc/nginx/conf.d/*.conf; }
-
应用配置文件(/etc/nginx/conf.d/xxx.conf)
server { listen 80; # 监听端口号 server_name demo.xxxx.com; # 服务名 root /opt/server/dist/xxxx/demo; # 根目录 access_log /var/log/nginx/access.log; location /prod-api/ { proxy_pass http://ip:9021/; # 可以调整为负载均衡 proxy_redirect off; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; client_body_buffer_size 128k; proxy_connect_timeout 70; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } error_page 404 /404.html; location = /404.html { root html; } location / { add_header Cache-Control private; add_header Cache-Control max-age=302400; add_header Cache-Control must-revalidate; try_files $uri $uri/ @router; index index.html index.htm; } location /favicon.ico { access_log off; } location @router { #处理二级路由在页面刷新后报404问题 rewrite ^.+(?<!js|css|png|map)$ /index.html break; } location @router { rewrite ^.*$ /index.html last; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
-