趁最近还没准备毕业论文的间隙,简单开启下微服务教程,希望能给大家带来帮助。本文是负载均衡部分使用第一篇,简单介绍下nginx的使用,以及nginx的反向代理,静态优化,负载均衡简单介绍.
全部代码下载:Github链接:github链接,点击惊喜;写文章不易,欢迎大家采我的文章,以及给出有用的评论,当然大家也可以关注一下我的github;多谢;
1.安装
简要介绍直接安装和编译安装
1.1直接apt-get安装
sudo apt-get install nginx
ubuntu安装Nginx之后的文件结构大致为:
所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下
启动程序文件在/usr/sbin/nginx
日志放在了/var/log/nginx中,分别是access.log和error.log
并已经在/etc/init.d/下创建了启动脚本nginx
默认的虚拟主机的目录设置在了/usr/share/nginx/www
1.2源代码安装
1.下载地址:http://nginx.org/download/
$./configure –prefix=/usr/nginx-1.8.0
$make
$make install
源码编译安装可能需要安装相关的依赖.
1.3测试安装成功否
1. 在线安装的启动
$sudo /etc/init.d/nginx start
2. 编译安装的启动
安装路径:如
/usr/nginx-1.8.0/sbin/nginx
然后就可以访问了,http://localhost/ ,会显示nginx主页面
2.配置文件简介
nginx.conf配置文件用配置nginx的功能,下面简单介绍下该文件各字段的含义
#================================以下是全局配置项
#指定运行nginx的用户和用户组,默认情况下该选项关闭(关闭的情况就是nobody)
#user nobody nobody;
#运行nginx的进程数量,后文详细讲解
worker_processes 1;
#nginx运行错误的日志存放位置。当然您还可以指定错误级别
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#指定主进程id文件的存放位置,虽然worker_processes != 1的情况下,会有很多进程,管理进程只有一个
#pid logs/nginx.pid;
events {
#每一个进程可同时建立的连接数量,后问详细讲解
worker_connections 1024;
#连接规则,可以采用[kqueue rtsig epoll select poll eventport ],后文详细讲解
use epoll;
}
#================================以上是全局配置项
http {
#================================以下是Nginx后端服务配置项
upstream backendserver1 {
#nginx向后端服务器分配请求任务的方式,默认为轮询;如果指定了ip_hash,就是hash算法(上文介绍的算法内容)
#ip_hash
#后端服务器 ip:port ,如果有多个服务节点,这里就配置多个
server 192.168.220.131:8080;
server 192.168.220.132:8080;
#backup表示,这个是一个备份节点,只有当所有节点失效后,nginx才会往这个节点分配请求任务
#server 192.168.220.133:8080 backup;
#weight,固定权重,还记得我们上文提到的加权轮询方式吧。
#server 192.168.220.134:8080 weight=100;
}
#================================以上是Nginx后端服务配置项
#=================================================以下是 http 协议主配置
#安装nginx后,在conf目录下除了nginx.conf主配置文件以外,有很多模板配置文件,这里就是导入这些模板文件
include mime.types;
#HTTP核心模块指令,这里设定默认类型为二进制流,也就是当文件类型未定义时使用这种方式
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 规则开启
sendfile on;
#指定一个连接的等待时间(单位秒),如果超过等待时间,连接就会断掉。注意一定要设置,否则高并发情况下会产生性能问题。
keepalive_timeout 65;
#开启数据压缩,后文详细介绍
gzip on;
#=================================================以上是 http 协议主配置
#=================================================以下是一个服务实例的配置
server {
#这个代理实例的监听端口
listen 80;
#server_name 取个唯一的实例名都要想半天?
server_name localhost;
#文字格式
charset utf-8;
#access_log logs/host.access.log main;
#location将按照规则分流满足条件的URL。"location /"您可以理解为“默认分流位置”。
location / {
#root目录,这个html表示nginx主安装目录下的“html”目录。
root html;
#目录中的默认展示页面
index index.html index.htm;
}
#location支持正则表达式,“~” 表示匹配正则表达式。
location ~ ^/business/ {
#反向代理。后文详细讲解。
proxy_pass http://backendserver1;
}
#redirect server error pages to the static page /50x.html
#error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#=================================================以上是一个服务实例的配置
}
2.2配置文件正确性判断
当我们修改配置文件后,假如启动时报错.很有可能就是配置文件有问题.可以通过一下命令进行检测
正确性检查:nginx -t -c /etc/nginx/nginx.conf
3.nginx的一些功能
需求:
下载安装两个Tomcat,并修改端口为8080和8081
Tomcat安装与使用
3.1.简单的反向代理
Tomcat和nginx进行简单整合,反向代理http://localhost到 http://localhost:8080;
###修改nginx.conf,在http{}中添加如下代码
server {
listen 80;
server_name localhost;
location /
{
proxy_pass http://localhost:8080;
}
}
启动Tomcat和nginx
在浏览器中输入localhost会直接显示tomcat的主页面;
3.2.静态文件服务
静态文件服务其实还是利用了location的功能,将特定正则的URL跳转到静态页面;
如果我们需要用nginx来进行静态文件服务,一般都会把所有静态文件,html,htm,js,css等都放在同一个文件夹下;
#配置Nginx动静分离,不建议这样使用
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
{
root /data/www;
#expires定义用户浏览器缓存的时间为3天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力
expires 3d;
}
##建议使用静态文件夹的方式
location ^~ /static/ {
root /webroot/static/;
}
3.3.负载均衡
nginx负载均衡的一个重要含义就是让一个服务由多个服务器提供.
nginx通过upstream可以实现,在upstream中定义相应的服务器,并在http的server中反向代理定义的负载均衡模块名.
即可实现简单的负载均衡.
来自伊豚wpeace(blog.wpeace.cn)
upstream local_host {
ip_hash;
#weigth参数表示权值,权值越高被分配到的几率越大 此去可以填ip名.
server localhost:8080 weight=1;
server localhost:8081 weight=5;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://local_host;
proxy_set_header X-Real-IP $remote_addr;
}
同时启动两个tomcat,和nginx.在浏览器中输入localhost重复几次输入,可以看到两个tomcat的主页都被访问到了.
好的本章介绍到这里 来自伊豚wpeace(blog.wpeace.cn)

2万+

被折叠的 条评论
为什么被折叠?



