笔记:Nginx常用配置
记录一些使用nginx过程中常用的配置
location
反向代理
# 所有/api开头的请求走反向代理location ^~ /api { proxy_pass http://localhost:8080;}# 所有/api开头的请求走反向代理,并且去掉/api前缀location ^~ /api { rewrite ^/api/(.*)$ /$1 break; proxy_pass http://localhost:8080;}单页面路由
单页面项目使用中,刷新页面会导致404,因为location只配置了根路径,所以需要try_files指令来重新找到index.html
location / { root <your_project_folder>; try_files $uri $uri/ /index.html;}支持websocket
location <im_path> { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_pass http://localhost:<im_port>;}静态资源缓存
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|mp4|svg|webp)$ { #过期时间为7天, #图片文件不怎么更新,过期可以设大一点, #如果频繁更新,则可以设置得小一点。 expires 7d; proxy_pass http://localhost:3000;}location ~ .*\.(js|css)$ { expires 60s; proxy_pass http://localhost:3000;}location / { proxy_pass http://localhost:3000;}server
增加ssl证书
server { #HTTPS的默认访问端口443。 #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。 listen 443 ssl; server_name <server_name>; #填写证书文件绝对路径 ssl_certificate <pem path>; #填写证书私钥文件绝对路径 ssl_certificate_key <key path>; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置) #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示优先使用服务端加密套件。默认开启 ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { root <project_folder>; index index.html; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { }}server { listen 80; #填写证书绑定的域名 server_name <server_name>; #将所有HTTP请求通过rewrite指令重定向到HTTPS。 rewrite ^(.*)$ https://${server_name}$1 permanent; }