Nginx安装
安装编译环境
1.安装gcc-c++包
yum -y install gcc-c++
2.安装pcre软件包(使nginx支持http rewrite模块)
yum install -y pcre
yum install -y pcre-devel
3安装openssl-devel(使nginx支持ssl)
yum install -y openssl-devel
安装Nginx
1 下载nginx 安装包
去官网地址下载最新的安装包:http://nginx.org/
2.使用wget下载安装包
wget http://nginx.org/download/nginx-1.15.8.tar.gz
3.解压安装包:
tar xvf nginx-1.15.8.tar.gz
4.修改配置
./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre
5生成脚本及配置文件
make
6 安装:
make install
7.查找nginx的位置
whereis nginx
nginx: /usr/local/nginx
8启动nginx
cd /usr/local/nginx
sbin/nginx
9查看系统进程
ps -aux | grep nginx
root 13919 0.0 0.0 45936 1128 ? Ss 03:21 0:00 nginx: master process ./nginx
nobody 13920 0.0 0.1 46388 1900 ? S 03:21 0:00 nginx: worker process
root 13924 0.0 0.0 112708 980 pts/0 S+ 03:22 0:00 grep --color=auto nginx
10.在浏览器中查看
http://192.168.28.140/
11.通过命令启动和关闭nginx
ginx 启动服务
nginx -s reload 不停止服务重读配置文件
nginx -s stop 停止服务
Nginx配置
开nginx配置文件位于nginx目录下的conf文件夹下
cd /usr/local/nginx/conf
vi nginx.conf
配置文件结构
... #全局块
events { #events块
...
}
http #http块
{
... #http全局块
server #server块
{
... #server全局块
location [PATTERN] #location块
{
...
}
location [PATTERN]
{
...
}
}
server
{
...
}
... #http全局块
}
1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。
5、location块:配置请求的路由,以及各种页面的处理情况。
负载均衡配置
1.在http节点下,加入upstream节点。
upstream linuxidc {
server 10.0.6.108:7080;
server 10.0.0.85:8980;
}
2 将server节点下的location节点中的proxy_pass配置为:http:// + upstream名称,即“http://linuxidc”.
location / {
root html;
index index.html index.htm;
proxy_pass http://linuxidc;
}
3负载均衡策略设置
upstream默认依照轮询方式进行负载,每一个请求按时间顺序逐一分配到不同的后端服务器。假设后端服务器down掉。能自己主动剔除。
3.1weight(权重) 指定轮询几率,weight和訪问比率成正比
upstream linuxidc{
server 10.0.0.77 weight=5;
server 10.0.0.88 weight=10;
}
3.2 ip_hash(訪问ip)每一个请求按訪问ip的hash结果分配。这样每一个訪客固定訪问一个后端服务器,能够解决session的问题。
upstream linuxidc{
ip_hash;
server 10.0.0.10:8080;
server 10.0.0.11:8080;
}
3.3fair(第三方)按后端服务器的响应时间来分配请求。响应时间短的优先分配。与weight分配策略相似。
upstream favresin{
server 10.0.0.10:8080;
server 10.0.0.11:8080;
fair;
}
3.4url_hash(第三方)
按訪问url的hash结果来分配请求,使每一个url定向到同一个后端服务器。后端服务器使用缓存时比較有效。
upstream resinserver{
server 10.0.0.10:7777;
server 10.0.0.11:8888;
hash $request_uri;
hash_method crc32;
}
rewrite
server {
listen 80;
server_name {domain};
rewrite ^/a/b/(.*)$ /server1/a/b/$1;
rewrite ^/c/(.*)$ /server2/c/$1;
location /server1 {
proxy_pass http://xx.xx.xx.xxx:8888;
proxy_set_header host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header referer "-";
proxy_redirect default;
}
location /server2 {
proxy_pass http://xx.xx.xx.xxx:8888;
proxy_set_header host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header referer "-";
proxy_redirect default;
}
}
- server1,server2为服务名,/a/b为server1的context,/c是server2的context
- http://xx.xx.xx.xxx:8888 是zuul的服务地址
- rewrite ^/a/b/(.*)$ /a/b/brand/$1; $1表示的是rewrite正则中()中的内容