Nginx常用配置

Nginx本身的配置

  • user:Nginx在安装时创建的用户。Nginx运行时也是以该用户的身份运行的。
  • worker-processes:进程数。推荐设置为处理器/CPU核数。过多或过少都会导致性能下降。
  • error_log:错误日志位置。
    涉及到服务器的配置events.worker_connections:一个进程能持有的连接数。根据网站的并发量设置。
    http配置:服务器的主要配置
  • access_log:网站的访问日志。
  • include:存在多个域名时,可以拆分为不同配置文件,用include包含拆分的配置文件。自动生成的配置文件中,include包含对服务器的默认配置default.conf。
  • default.conf;包含一个server配置块。
  • server.server_name:用于指定域名(如example.com www.example.com表示访问example.com或www.example.com),默认为localhost。用于实现基于名称的虚拟服务器。一个服务器中可能运行多个网站,要为不同网站指定不同配置文件,可以在不同配置文件的server_name中指定不同名称。
  • server.location:用于将不同的路径访问路由到不同文件。如
    # 访问不带路径的域名时,root路径下的index.html会被返回给用户。 location / { # 如果在windows上,则root为绝对路径,如D:\dev\React root /usr/share/nginx/html; index index.html }

    Linux命令行
  • systemctl restart nginx:重启nginx
  • systemctl status nginx:查看nginx状态
  • systemctl reload nginx:重新加载配置文件,但不重启nginx
  • systemctl stop nginx:停止nginx
  • 【Nginx常用配置】systemctl start nginx:启动nginx
    单页面应用跳转配置问题:单页面应用只有index.html一个界面文件,其他界面通过前端路由。但浏览器在刷新或使用window.location.href跳转时,仍会向nginx发送请求,此时nginx无法找到路径对应的文件,会显示404。
    解决:
    location / { root ... index index.html # 无论root是什么路径,这里的最后一项都可以直接写/index.html try_files $uri /index.html; }

    try_files:按指定顺序查找文件,并用找到的第一个文件处理请求。语法如下:
    try_files file1 file2 ... uri try_files file1 file2 ... =code

    其中,参数file1、file2是用于查找文件的路径(相对于root的相对路径)。filex可以使用$uri,表示请求的路径和文件名。使用第一种语法时,如果所有filex参数指定的路径都没有找到文件,则内部向uri指定的路径发送请求(根据server_name指定的域名);使用第二种语法时,如果所有filex指定的文件都未找到,则返回code指定的响应码(如404)。详见。
    因此,上文解决单页面刷新/跳转404的配置表示,如果请求为localhost/login,则先在root指定的地址中查找/login文件,如果文件不存在,则在内部向localhost/index.html发送请求,并将结果返回给用户。

    推荐阅读