634 字
3 分钟
Nginx备忘
常用命令
# 测试配置sudo nginx -t
# 重新加载配置sudo systemctl reload nginx
# 重启sudo systemctl restart nginx
# 查看状态sudo systemctl status nginx文件结构
/etc/nginx/├── nginx.conf # 主配置├── sites-available/ # 可用的站点配置├── sites-enabled/ # 启用的站点(符号链接),只用把available里的配置链接到enable才会启用站点配置。└── conf.d/ # 额外配置配置流程
# 1. 创建配置sudo vim /etc/nginx/sites-available/<站点名>
# 2. 启用站点配置(软链接)sudo ln -s /etc/nginx/sites-available/<站点名> /etc/nginx/sites-enabled/
# 3. 测试配置文件语法sudo nginx -t
# 4.重载nginxsudo systemctl reload nginx配置文件
主配置文件
路径一般是:/etc/nginx/nginx.config 参数太多了,不写了,挺多实用功能的啊
站点配置文件
路径:/etc/nginx/sites-avilable
# 静态网站server { listen 80; #监听80端口 server_name 域名; #如果访问的是域名的80端口。也就是说多个配置文件可以共用一个80端口,但是可以写多个域名,从而达到不同的域名访问同一个机器的80端口可以访问不同的页面 root /var/www/html; #存静态页面的根目录 index index.html; #静态页面的index文件}
# 反向代理(到其他端口上)server { listen 80;#和上面一个道理 server_name 域名;#监听这个域名的80端口,也就是说这个机器的80端口可以根据域名的不同统一被nginx转发到各自的服务端口上
location / { proxy_pass http://127.0.0.1:8000; #可以把从这个域名的80端口访问转发到指定的地址,哪怕不是一台机子也行 proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #也是传递客户端的真实IP地址 proxy_set_header X-Forwarded-Proto $scheme; #传递客户端使用的协议(HTTP/HTTPS) }}
server { listen 443 ssl; server_name 域名; #加ssl证书 ssl_certificate /etc/letsencrypt/live/域名/fullchain.pem; #这个是cerbot默认的证书存放地址 ssl_certificate_key /etc/letsencrypt/live/域名/privkey.pem; #如果你是别的服务商发的证书可以写他们的地址
location / { proxy_pass http://127.0.0.1:8000; }}
# HTTP重定向到HTTPSserver { listen 80; server_name 域名; return 301 https://$server_name$request_uri;}调试与日志
# 查看错误日志sudo tail -f /var/log/nginx/error.log
# 查看访问日志sudo tail -f /var/log/nginx/access.log
# 检查端口监听sudo netstat -tulpn | grep nginx
# 查看Nginx进程ps aux | grep nginx实用技巧
# 查看完整配置sudo nginx -T
# 查看编译参数nginx -V
# 快速禁用站点sudo rm /etc/nginx/sites-enabled/站点名sudo unlink /etc/nginx/sites-enabled/站点名
# 查看配置文件语法sudo nginx -c /etc/nginx/nginx.conf -t