常用命令
查看Nginx的版本号:nginx -V
启动Nginx:start nginx
指定配置启动:nginx -c /path/to/nginx.conf
配置文件修改重新加载命令:nginx -s reload
检查默认配置是否正确: nginx -t
检查指定配置: nginx -t -c /path/to/nginx.conf
快速停止或关闭Nginx:nginx -s stop
正常停止或关闭Nginx:nginx -s quit
可以直接杀进程或任务管理器找到 nginx 结束任务
ps:直接解压出来的没加入环境变量,使用 ./nginx 运行,nginx.exe 同目录添加 temp 文件夹。
完整配置
# nginx启动的进程数,通常设置成和cpu的数量相等;可以设置为: auto worker_processes auto; # errorlog 文件位置, 有debug、info、notice、warn、error、crit几种 # error_log logs/error.log notice; error_log logs/error.log info; error_log logs/error.log error; # pid文件地址,记录了nginx的pid,方便进程管理 pid logs/nginx.pid; # 用来加载其他动态模块的配置 # include nginx/modules/*.conf; # 工作模式和进程连接数上限 # 并发总数:worker_processes*worker_connections events { # 每个worker_processes的最大并发链接数 worker_connections 1024; } # 与提供http服务相关的一些配置参数 http { # 引入文件扩展名与文件类型映射表 include mime.types; # 默认文件类型 default_type application/octet-stream; # 设置日志的格式 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记录访问的用户、页面、浏览器、ip和其他的访问信息 access_log logs/access.log main; # 设置nginx是否使用sendfile函数输出文件 # 一般的网络传输过程 # 硬盘 >> kernel buffer >> user buffer>> kernel socket buffer >>协议栈 # 使用sendfile后 # 硬盘 >> kernel buffer (快速拷贝到kernelsocket buffer) >>协栈议 # 可以显著提高传输性能 sendfile on; # 数据包最大时发包(使用Nagle算法) # tcp_nopush只有在启用了sendfile时才起作用, # 在启用tcp_nopush后,程序接收到了数据包后不会马上发出,而是等待数据包最大时一次性发出,可以缓解网络拥堵(Nagle化) tcp_nopush on; # 立刻发送数据包(禁用Nagle算法) # tcp_nodelay on; # 链接超时时间 #keepalive_timeout 0; keepalive_timeout 65; #gzip on; # 负载均衡:多个后台服务器接口;weight:使用到的比重等级 upstream proxyProject { server 127.0.0.1:3330; server 127.0.0.1:8080 weight=2; } # http服务上支持若干个虚拟主机。 # 每个server对应一个虚拟主机配置项 server { listen 80; # 修改为自己的域名 server_name www.myself.com myself.com; # 跨域 add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods 'GET,POST'; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; # 301 重定向 return 301 https://www.myself.com$request_uri; # rewrite ^ https://www.myself.com$request_uri? permanent; } # HTTPS server # server { listen 443 ssl; server_name www.myself.com myself.com; # 跨域 add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods 'GET,POST'; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; # 证书文件 ssl_certificate ../../myself.com/Nginx/1_myself.com_bundle.crt; ssl_certificate_key ../../myself.com/Nginx/2_myself.com.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; if ($ssl_protocol = "") { rewrite ^(.*) https://$host$1 permanent; } # 根路由,正常访问 location / { root html; index index.html index.htm; } # 代理路由,代理访问,多个服务实现负载均衡 location /proxy { proxy_pass http://proxyProject$request_uri; proxy_set_header X-Real-IP $remote_addr; } } }