1. Nginx介绍
2.Nginx常用命令
cd /usr/local/nginx/sbin/
./nginx 启动
./nginx -s stop 停止
./nginx -s quit 安全退出
./nginx -s reload 重新加载配置文件 如果我们修改了配置文件,就需要重新加载。
ps aux|grep nginx 查看nginx进程
3.nginx配置文件
3.1 基础配置
# 主进程叫master,负责管理子进程,子进程叫worker
# worker_processes配置项表示开启几个业务进程,一般和cpu核数有关
worker_processes 1;
events {
worker_connections 1024;
}
http {
# include表示可以引入其他文件,此处表示引入http mime类型
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# 虚拟主机,可以配置多个
server {
listen 80;
server_name localhost;
location / {
# 路径匹配之后,哪个目录下去匹配相应的网页,html是相对路径
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
3.1.1 第一部分:全局块
3.1.2 第二部分:events块
3.1.3 第三部分:http全局块(主要配置的模块)
http
全局块:http 全局块配置的指令包括:文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。
server
块:这块和虚拟主机有密切关系,从用户角度看,虚拟主机和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。
每个http块可以包括多个server块,而每个server块就相当于一个虚拟主机。而每个server块也分为全局server块,以及可以同时包含多个locaton块。
3.1.3.1 全局 server 块
3.1.3.2 location 块
4. 实操
4.1反向代理
4.1.1 跳转
实现效果:使用 Nginx 反向代理,访问192.168.68.130直接跳转到127.0.0.1:8080和127.0.0.1:7070
server {
listen 80;
server_name 192.168.68.130;
location / {
root html;
index index.html index.htm;
proxy_pass http://127.0.0.1:8080
}
location ~ /edu/ {
proxy_pass http://127.0.0.1:7070
}
}
location
指令说明
该指令用于匹配 URL, 语法如下:
location [ = | ~ | ~* | ^~] uri {
}
=
:用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求
~
:用于表示 uri 包含正则表达式,并且区分大小写
~*
:用于表示 uri 包含正则表达式,并且不区分大小写
^~
:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求。字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location块中的正则 uri 和请求字符串做匹配。
4.2负载均衡
4.2.1 轮询
# 反向代理配置
upstream server_list{
# 这个是tomcat的访问路径
server localhost:8080;
server localhost:7070;
}
server {
listen 80;
server_name localhost;
location / {
root html;
proxy_pass http://server_list;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
4.2.1 weight 权重
# 反向代理配置
upstream server_list{
# 这个是tomcat的访问路径
server localhost:8080 weight=5;
server localhost:7070 weight=1;
}
4.2.2 ip_hash
upstream backserver {
ip_hash;
server 127.0.0.1:8080;
server 127.0.0.1:7070;
}
4.2.3 最少连接
upstream backserver {
least_conn;
server 127.0.0.1:8080;
server 127.0.0.1:7070;
}
5. 容易搞混的配置
5.1 root和alias
例如,
有一张图片,URL是:www.123.com/static/a.jpg
它在服务器的路径是:/var/www/app/static/a.jpg
那么用root的配置是:
location /static/ {
root /var/www/app/;
}
用alias的配置就是:
location /static/ {
alias /var/www/app/static/;
}
对于alias,location值可以随便取,例如:
location /hello/ {
alias /var/www/app/static/;
}
这样,我们访问图片的地址就是:www.123.com/hello/a.jpg
5.2 try_files
try_files /4.html /5.html @qwe;
#检测文件4.html和5.html,如果存在正常显示,不存在就去查找@qwe值