Nginx相关概念
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
负载均衡,英文名称为Load Balance,是指建立在现有网络结构之上,并提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。其原理就是数据流量分摊到多个服务器上执行,减轻每台服务器的压力,多台服务器共同完成工作任务,从而提高了数据的吞吐量。
Nginx安装
- 编译安装
上传至Linux 并解压进入解压目录
检查安装环境,并指定将来要安装的路径/usr/local/nginx
with-http_ssl_module 支持https的反向代理, 详情请看另一篇文章
./configure --prefix=/usr/local/nginx --with-http_ssl_module
- 若缺包报错:
./configure: error: C compiler cc is not found
使用YUM安装缺少的包, 再次执行上述命令
yum -y install gcc pcre-devel openssl openssl-devel
- 编译安装
make && make install
- 运行nginx 测试是否正常:
/usr/loca/nginx/sbin/nginx
- 查看端口是否有ngnix进程监听
netstat -ntlp | grep 80
配置Nginx
- 反向代理
编辑nginix根目录下nginx.conf
vi conf/nginx.conf
server {
listen 80; #监听80端口
server_name localhost; #本地服务器的主机名
#charset koi8-r;
#access_log logs/host.access.log main;
#反向代理的配置
location / { #location后面跟正则表达式 /拦截所有请求
root html;
index index.html index.htm;
# 这里是代理走向的目标服务器:tomcat地址
proxy_pass http://192.168.0.21:8080;
}
- 动静分离
# 动态资源 index.jsp
location ~ .*\.(jsp|do|action)$ {
proxy_pass http://tomcat-01.itcast.cn:8080;
}
# 静态资源
location ~ .*\.(html|js|css|gif|jpg|jpeg|png)$ {
expires 3d;
}
- 负载均衡
在http这个节下面配置一个叫upstream的,后面的名字可以随意取,但是要和location下的proxy_pass http://后的保持一致。
http {
# 是在http里面的, 已有http, 不是在server里,在server外面
upstream tomcats {
#weight表示分配权重
server 192.168.0.21:8080 weight=1;
server 192.168.0.22:8080 weight=1;
server 192.168.0.23:8080 weight=1;
}
# 卸载server里
location ~ .*\.(jsp|do|action) {
#tomcats是后面的tomcat服务器组的逻辑组号
proxy_pass http://tomcats;
}
}
常用命令
- 在nginx安装目录/sbin/下:
启动 | ./nginx |
修改配置后重新加载生效 | ./nginx -s reload |
快速停止nginx | ./nginx -s stop |
完整有序的停止nginx | ./nginx -s quit |
- 通过进程:
查看Nginx进程 | ps -ef | grep nginx |
从容停止 | kill -QUIT 主进程号 |
快速停止 | kill -TERM 主进程号 |
强制停止 | pkill -9 nginx |