nginx
目录
事件驱动,一个master多个worker进程
用途:
- 反向代理
- 负载均衡
- 可用于解决前后端分离项目中的跨域问题
基本
配置文件
有多个地方可放配置文件:
- /etc/nginx/nginx.conf
- 此文件主要是全局配置如用于正常运行的必备配置项、优化性能的配置项、事件类配置项
- 下面的两个目录是http配置块下的server块,主要配置站点的监听端口和路由等
- /etc/nginx/conf.d/*
- 站点的配置文件优先放入此文件夹中,尽量不使用下面的这个文件夹
- /etc/nginx/conf.d/sites-enabled/*
- 此目录中的文件是/etc/nginx/conf.d/sites-available/*目录中文件的软连接
日志文件
access:/var/log/nginx/access.log
error: /var/log/nginx/error.log
日志实时查看可以用tail -f file 或 head -f file
server配置带不带/区别
server中包括location、root、proxy_pass,以下分别讨论
-
location表示匹配内容,通常表示访问目录,所以强烈推荐加上/,如
location /abc/,若不加的话,请求https://xxx.com/abcde则也会被匹配到 -
root表示目录,故加不加无所谓,因此通常不加
-
proxy_pass分情况(用http://192.168.1.4/proxy/test.html表示请求的URL)
第一种: location /proxy/ { proxy_pass http://127.0.0.1:81/; } 结论:会被代理到http://127.0.0.1:81/test.html 这个url 第二种(相对于第一种,最后少一个 /) location /proxy/ { proxy_pass http://127.0.0.1:81; } 结论:会被代理到http://127.0.0.1:81/proxy/test.html 这个url 第三种: location /proxy/ { proxy_pass http://127.0.0.1:81/ftlynx/; } 结论:会被代理到http://127.0.0.1:81/ftlynx/test.html 这个url。 第四种(相对于第三种,最后少一个 / ): location /proxy/ { proxy_pass http://127.0.0.1:81/ftlynx; } 结论:会被代理到http://127.0.0.1:81/ftlynxtest.html 这个url
各种场景下的配置
反向代理
前后端分离
负载均衡
单主机多域名
可通过nginx增加一个虚拟主机的方式,完成多站点绑定到服务器同一个IP地址和同一个端口
server {
listen 443;
server_name [$Domain1];
ssl on;
ssl_certificate [$Certificate_Path1];
ssl_certificate_key [$Key_Path1];
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers [$Ciphers_Suite1];
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
server {
listen 443;
server_name [$Domain2];
ssl on;
ssl_certificate [$Certificate_Path2];
ssl_certificate_key [$Key_Path2];
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers [$Ciphers_Suite2];
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}