1.简介:
Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务
2.官网:
NGINX | High Performance Load Balancer, Web Server, & Reverse Proxyhttps://www.nginx.com/
https://www.nginx.com/resources/wiki/https://www.nginx.com/resources/wiki/
Nginx中文文档http://www.nginx.cn/doc/
3.安装:
(1)Window系统安装:
(1.1)下载链接:
nginx: downloadhttp://nginx.org/en/download.html
(1.2)如图:解压后目录
(1.3)启动nginx:双击nginx.exe或窗口命令启动
如图:窗口命令启动,此时有下横线在闪,即表示已 ;
或 浏览器输入http://localhost:80 测试。
(2)Linux系统安装:
(2.1)环境配置:yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
gcc:nginx源码编译环境,zlib zlib-devel:提供压缩算法,模块有使用gzip压缩
pcre-devel:nginx模块正则表达式,openssl openssl-devel:支持 https协议
(可选配置)
(2.2)安装nginx:
(2.2.1)上传服务器:将nginx压缩包上传至Linux服务器
(2.2.2)解压压缩包:tar -zxvf 压缩包文件.tar.gz(命令)
(2.2.3)加载默认配置:./configure --prefix=/nginx安装目录(命令)
(2.3)编译nginx:make、make install(命令)
(2.4)启动nginx:进入nginx安装目录的sbin目录,输入./nginx(命令)
3.使用:
(1)动态代理:
即需转发一个或多个请求路径时,由Nginx统一代理跨域转发到后台
(1.1)进入nginx的conf目录修改nginx.conf文件
server { #nginx服务1
listen 80; #nginx服务监听端口,默认80端口
server_name localhost; #nginx服务监听IP,默认本地IP,即127.0.0.1
#转发配置
location / {
proxy_pass http://localhost:8081/;
}
#或 不同前缀路径转发
location /user/ { #拦截路径有user的请求#设置请求头的参数
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#设置请求转发路径
proxy_pass http://localhost:8081/;
}location /role/ { #拦截路径有role的请求
#设置请求头的参数
#设置请求转发路径
proxy_pass http://localhost:8082/;
}}
server { #nginx服务2
listen 81; #nginx服务监听端口,端口为81
server_name localhost; #nginx服务监听IP,默认本地IP,即127.0.0.1
#其它配置...
#引入其它conf配置文件
include /目录/*.conf;
}
其它conf配置文件:nginx1.conf文件,vue打包部署到服务器nginx参考配置文件
location /vue打包项目名/ {
alias html/vue打包项目名/;
index index.html index.htm;
}
location /vue打包项目名_static/ {
alias html/vue打包项目名/vue打包项目名_static/;
}location /vue-prod-api/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://ip:port/;
}
(1.2)nginx代理转发测试:
如图:此处我是在Vue项目config目录dev.env.js添加的,其它类似
(2)动静分离:
(2.1)新建目录:在nginx目录新建static目录,放入一张图片.jpg
(2.2)配置文件:进入nginx的conf目录修改nginx.conf文件
server { #nginx服务1
listen 80; #nginx服务监听端口,默认80端口
server_name localhost; #nginx服务监听IP,默认本地IP,即127.0.0.1
location~ .*\.(jpg|png|gif)${
root /nginx安装目录/static;
}
}
(2.3)访问图片: http://localhost:80/图片.jpg
(3)负载均衡:
(3.1)配置文件: 进入nginx的conf目录修改nginx.conf文件
server { #nginx服务1
listen 80; #nginx服务监听端口,默认80端口
server_name localhost; #nginx服务监听IP,默认本地IP,即127.0.0.1
#转发配置
location / {
proxy_pass http://myServer/; //实现服务负载均衡访问
}#定义多个服务,实现服务负载
upstream myServer{
server localhost:8081 weight=1; #weight为权重,即访问量多的服务server localhost:8082 weight=2;
}}