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
:重启nginxsystemctl status nginx
:查看nginx状态systemctl reload nginx
:重新加载配置文件,但不重启nginxsystemctl 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发送请求,并将结果返回给用户。
推荐阅读
- 启动和重启NGINX
- 个人网站|树莓派建立个人网站(一)(Nginx+uWSGI+Flask实现最简服务器的搭建)
- Nginx验证安装
- Nginx教程介绍
- NGINX所有变量
- NGINX TCP和UDP负载均衡
- NGINX提供静态内容
- Nginx安全控制
- NGINX反向代理