Search

Search IconIcon to open search

Nginx

Last updated Mar 19, 2024

# 简介

# 是什么

  • 轻量级 Web 服务器
  • 反向代理服务器

(正向代理: 代为请求; 反向代理: 代为响应)

# 能做什么

  • 直接支持 Rails 和 PHP 程序
  • 作为 HTTP 反向代理服务器
  • 负载均衡服务器
  • 邮件代理服务器
  • 帮助前端动静分离

# 特性

  • 高稳定
  • 高性能
  • 功能丰富
  • 模块化
  • 支持热部署

# 安装

依赖 package

  • gcc
  • pcre-devel
  • zlib, zlib devel
  • openssl, openssl-devel

www.nginx.org 官网

linux 安装后在目录执行 ./configure

win 下载后解压缩就能运行 exe

# 使用

# 常用配置

linux

  • 主页是 /var/www/html/
  • 主配置文件是 /etc/nginx/nginx.conf (好像是?)

window

  • 主页是 ./html/
  • 主配置文件是 ./conf/

# 常用命令

测试配置是否正确

1
nginx -t  

启动

1
nginx 

停止

1
2
3
nginx -s stop 
// or 从容关闭
nginx -s quit

重启

1
nginx -s reload

平滑重启. 会先尝试解析配置文件, 如果更新了且无误就应用, 启动新的进程并 quit 旧的. 可以继续为当前链接用户提供服务

1
kill HUP [进程号]

查看进程信息

1
ps -ef | grep nginx

增加防火墙访问权限

1
sudo vim /etx/sysconfig/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

# 虚拟域名配置及测试

  • nginx.conf 增加 include vhost/*.conf
  • 在 nginx/conf 创建 vhost 文件夹, 在里面配置 conf 文件
  • 重启 nginx 服务
  • 访问 localhost:80

指向端口的 http 转发

proxy_pass 如果不是转发给 80, 需要这么写

1
2
3
4
5
location / { 
    proxy_set_header Host $host; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_pass http://宿主机ip:8080; 
    }

指向目录

autoindex 开启的话, 会将 root 文件夹下的所有文件创建目录, 也就是这些文件可以通过 URL 访问到. 一般不建议开启, 可能会被穷举爆破. 下载服务可以开.

# Nginx 本地玩耍注意事项(win)

  • 配置域名转发还要配置 host. 添加 服务器ip 二级域名
    • linux: /etc/hosts
    • win: sys32/drivers/etc

win 下 路径用 \, 路径最后即使是文件夹, 不要再加一个反斜杠.

win 的报错信息报的是错误的+1行

access_log 这样配 access_log logs\access.log 不出问题. 其他好像会有 create_file() 问题

portable 在安装目录进入 cmd 打开, 不然会有工作目录问题