常用的Nginx命令与配置
MAC环境
安装
brew install nginx
内容
/usr/local/var/www
/usr/local/Cellar/nginx/1.21.3/html
配置
配置文件路径
/usr/local/etc/nginx
/usr/local/etc/nginx/nginx.conf
禁止通过IP访问
- 绑定了hosts
127.0.0.1 example.org www.example.org
- 只允许通过
localhost:8080
或者example.org:8080
或者www.example.org:8080
访问, - 禁止通过
127.0.0.1:8080
访问, 返回502错误.server { listen 8080; return 502; } server { listen 8080; server_name localhost example.org www.example.org; }
单Host多域名, 不同域名访问不同服务
- 绑定了hosts
127.0.0.1 example.org www.example.org
- 通过
localhost:8080
访问, 则访问到$NGINX_HOME/html/
目录 - 通过
example.org:8080
或者www.example.org:8080
访问, 则访问到$NGINX_HOME/html2/
目录 - 禁止通过
127.0.0.1:8080
访问, 返回502错误.server { listen 8080; return 502; } server { listen 8080; server_name example.org www.example.org; location / { root html2; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html2; } } server { listen 8080; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
环境变量
NGINX_HOME:
/usr/local/Cellar/nginx/1.21.3
location / {
root html;
index index.html index.htm;
}
上边的html就是 NGINX_HOME/html/
服务
brew services start nginx
brew services restart nginx
brew services stop nginx
其他
Nginx是如何知道本次请求, 请求的是IP还是域名? 如果是域名的话, 多个域名如何区分?
- 如下图, 本质上还是Nginx解析HTTP协议, 根据请求行里的
RequestURL
来进行判断.