Nginx安装和使用 Ubuntu 安装Nginx 1 2 sudo apt update sudo apt install nginx
启动服务 nginx 所有服务
1 2 sudo service nginx Usage: nginx {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}
启动
1 sudo service nginx start
停止nginx服务
重新加载配置(修改完配置后执行)
1 sudo service nginx reload
查看nginx状态,这里会打印出nginx conf中需要优化的地方
1 2 3 4 5 6 7 8 9 10 11 12 13 14 sudo service nginx status ● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2021-03-03 00:56:38 UTC; 1 day 13h ago Docs: man:nginx(8) Process: 62271 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, status=0/SUCCESS) Main PID: 1531 (nginx) Tasks: 3 (limit: 1092) Memory: 15.8M CGroup: /system.slice/nginx.service ├─ 1531 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ├─62272 nginx: worker process └─62275 nginx: worker process
比如这种提示: nginx: [warn] the “ssl” directive is deprecated, use the “listen … ssl” ssl 这个配置已经失效,可采用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 server { listen 443 ssl; listen [::]:443 ssl; ssl_certificate /etc/nginx/cert/1_www.xxx.cn_bundle.crt; ssl_certificate_key /etc/nginx/cert/2_www.xxx.cn.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 ; ssl_ciphers HIGH:!aNULL:!MD5; server_name www.xxx.cn; client_max_body_size 1024m ; location / { ... } }
之后重启
1 sudo service nginx restart
Nginx 配置 nginx 下载服务配置 1 2 3 4 5 6 7 8 location /downloads { # url alias /tmp; # 下载目录 autoindex on; autoindex_exact_size on; autoindex_localtime on; charset utf-8,gbk; index index.html index.htm; }
nginx 内置变量 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 $ args :这个变量等于请求行中的参数,同$query_string $ content_length : 请求头中的Content-length字段。 $ content_type : 请求头中的Content-Type字段。 $ document_root : 当前请求在root指令中指定的值。 $ host : 请求主机头字段,否则为服务器名称。 $ http_user_agent : 客户端agent信息 $ http_cookie : 客户端cookie信息 $ limit_rate : 这个变量可以限制连接速率。 $ request_method : 客户端请求的动作,通常为GET或POST。 $ remote_addr : 客户端的IP地址。 $ remote_port : 客户端的端口。 $ remote_user : 已经经过Auth Basic Module验证的用户名。 $ request_filename : 当前请求的文件路径,由root或alias 指令与URI请求生成。 $ scheme : HTTP方法(如http,https)。 $ server_protocol : 请求使用的协议,通常是HTTP/1.0或HTTP/1.1。 $ server_addr : 服务器地址,在完成一次系统调用后可以确定这个值。 $ server_name : 服务器名称。 $ server_port : 请求到达服务器的端口号。 $ request_uri : 包含请求参数的原始URI,不包含主机名,如:”/foo/bar.php?arg=baz”。 $ uri : 不带请求参数的当前URI,$uri 不包含主机名,如”/foo/bar.html”。 $ document_uri : 与$uri 相同。
http跳转https 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; error_page 404 https://www.xxx.cn/; return 301 https://www.xxx.cn/$request_uri ; location / { try_files $uri $uri / =404 ; } }
nginx配置静态文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 server { listen 443 ssl; listen [::]:443 ssl; ssl_certificate /etc/nginx/cert/1_www.xxx.cn_bundle.crt; ssl_certificate_key /etc/nginx/cert/2_www.xxx.cn.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 ; ssl_ciphers HIGH:!aNULL:!MD5; server_name www.xxx.cn; client_max_body_size 1024m ; location /ads.txt { root /var/www/html; index ads.txt; } }
直接暴露目录 1 2 3 4 5 6 location / { root /var/www/html; autoindex on ; }