目录

nginx

事件驱动,一个master多个worker进程

用途:

  1. 反向代理
  2. 负载均衡
  3. 可用于解决前后端分离项目中的跨域问题

基本

配置文件

有多个地方可放配置文件:

  1. /etc/nginx/nginx.conf
    1. 此文件主要是全局配置如用于正常运行的必备配置项、优化性能的配置项、事件类配置项
    2. 下面的两个目录是http配置块下的server块,主要配置站点的监听端口和路由等
  2. /etc/nginx/conf.d/*
    1. 站点的配置文件优先放入此文件夹中,尽量不使用下面的这个文件夹
  3. /etc/nginx/conf.d/sites-enabled/*
    1. 此目录中的文件是/etc/nginx/conf.d/sites-available/*目录中文件的软连接

日志文件

access:/var/log/nginx/access.log
error: /var/log/nginx/error.log

日志实时查看可以用tail -f filehead -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;
    }
}