什么是nginx?
Nginx是俄罗斯人编写的轻量级Web服务器,它不仅是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。
截至目前,差不多世界上每3个网站中就有1个使用Nginx。
下载安装
安装Nginx,安装地址:http://nginx.org/en/download.html
下载完直接解压,目录结构是这样
核心配置
找到 conf 目录里的 nginx.conf 文件,配置Nginx,核心配置如下
#user nobody;
#指定nginx进程数
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
#连接数上限
worker_connections 1024;
}
#设定http服务器
http {
#设定mime类型,类型由mime.type文件定义
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于
#普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁
#盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
sendfile on;
#tcp_nopush on;
#连接超时时间
#keepalive_timeout 0;
keepalive_timeout 65;
#开启gzip压缩
#gzip on;
#服务器的集群,集群的名字
upstream localhost {
#服务器配置 weight是权重的意思,权重越大,分配的 概率越大。
server 127.0.0.1:8080 weight=1;
server 127.0.0.1:8081 weight=2;
}
#配置代理服务器的地址,即Nginx安装的服务器地址、监听端口、默认地址
#一个server相当于一个代理服务器,可以配置多个server
server {
#1.侦听80端口代表当前代理服务器的访问端口号,默认是80端口。如果要配置多个
# server,这里的默认端口需要改变,要不然系统不知道进入哪个代理服务。
listen 80;
#对于server_name,如果需要将多个域名的请求进行反向代理,可以配置多个
#server_name来满足要,多个域名用空格隔开
server_name localhost;
#字符集
#charset koi8-r;
#access_log logs/host.access.log main;
#表示匹配客户端发送请求的路径,这里“/”代表所有请求的路径都能匹配
location / {
# 默认主页目录在nginx安装目录的html子目录。
root html;
#如果代理没有指定主页,将默认进入index配置下寻找主页,可以配置多个,第
# 一个主页找不到,访问第二个,以此类推。
index index.html index.htm;
#这里配置的proxy_pass属性表示代理路径,nginx可以直接转发到该链接。
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
实现反向代理
反向代理的大概意思当你访问neginx服务器的时候他会转发到配置的tomcat中。(可自行百度具体含义)
然后是启动
在cmd中切到安装的目录下使用start nginx.exe。
然后tasklist /fi "imagename eq nginx.exe"看是否启动成功。
如果这样代表启动成功。
然后再网站上只需要输入localhost就可以直接转发到localhost:8080。(提前把项目部署到tomcat,并且启动~)
实现动静分离
在反向代理的location下面再加入一个。
# 配置nginx动静分离,定义的静态页面直接从nginx目录中读取。
# 把静态文件放D:\360data\soft\nginx-1.20.1\static文件夹下
location .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
root D:/360data/soft/nginx-1.20.1/static;
# 定义保存多久,7天
expires 7d;
}
然后吧nginx重启一下。
tomcat集群配置和负载均衡
这个是服务器的集群。
然后把代理的地址改成集群的名称。
重启一下neginx。
测试ok。