Nginx的安装和使用

Nginx概述

Nginx是一款高性能的Http服务器/反向代理服务器,官方测试支持5万并发量,他是免费的,开源的。并且cpu、内存占用非常低,运行非常稳定。

应用场景

1、HTTP服务器,可以做静态网页服务器。 动态网页做到tomcat来部署,Nginx来反向代理。

2、虚拟主机。可以在一台服务器模拟出多个网站,例如虚拟主机。

3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。让多台服务器可以平均分担。

安装

1、需要gcc的环境

yum install gcc-c++

2、第三方的包

pcre库

yum install -y pcre pcre-devel

zlib库 gzip压缩

yum install -y zlib zlib-devel

openSSL SSL协议 https

yum install -y openssl openssl-devel

nginx下载地址 http://nginx.org/en/download.html

将下载下来的 nginx-1.18.0.tar.gz 上传到linux服务器 /usr/local/nginx 中

cd /usr/local/nginx

tar -xvf nginx-1.18.0.tar.gz

解压后 进入Nginx-1.18.0文件夹 使用configure命令创建makefile文件

./configure 
--prefix=/usr/local/nginx 
--pid-path=/var/run/nginx/nginx.pid 
--lock-path=/var/lock/nginx.lock 
--error-log-path=/var/log/nginx/error.log 
--http-log-path=/var/log/nginx/access.log 
--with-http_gzip_static_module 
--http-client-body-temp-path=/var/temp/nginx/client 
--http-proxy-temp-path=/var/temp/nginx/proxy 
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi 
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi 
--http-scgi-temp-path=/var/temp/nginx/scgi

执行后 会生成makefile文件

编译

make

安装

make install

nginx 启动与访问

创建临时目录

mkdir /var/temp/nginx/client -p

进入nginx 目录

 cd /usr/local/nginx/sbin

./ngnix 启动

查看nginx启动是否成功

ps -ef | grep 'nginx'

./ngnix -s stop 关闭

./ngnix -s quit 重启

./ngnix -s reload 刷新配置

 

检查是否开启80端口 

firewall-cmd --list-ports

添加端口 

firewall-cmd --zone=public --add-port=80/tcp --permanent

刷新防火墙

firewall-cmd --reload

 

输入虚拟机ip 则可以看见 欢迎访问nginx 页面

 

 

部署静态网页

/usr/local/nginx 共有三个文件夹 conf html sbin

sbin是执行文件 启动或关闭 nginx

conf是配置文件目录 

html是资源文件夹

首先进入conf 查看nginx.conf 配置文件

http {
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

listen 80 监听80端口

server_name 域名 如www.xxx.com

root 网站目录

index 默认首页 如 index.html index.htm default.html

所以部署静态资源 只需要修改 root后面的html即可 或者将文件覆盖 html文件夹

这里上传到html下 /index文件夹 所以就是 root html/index

如果有多个网站部署 可以写多个server

反向代理

以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求链接的客户端。

上传springboot 项目 build后的.jar 到/home/website  nohup jar -jar xxx.jar 后台启动  使 10.211.55.4:8080 可以打开页面

配置反向代理

http {
    server {
        listen       80;
        server_name  www.david.com;
        location / {
            proxy_pass http://127.0.0.1:8080;
        }
    }
}

这样输入 www.david.com 就会走 8080端口的程序,如果有多个可以在加一个server  监听不同的域名 去访问不同的 端口程序

负载均衡

利用负载均衡解决 高并发请求一台服务器崩溃 响应慢等问题

负载均衡的实现方式:

1、轮循 : 默认的方式,按时间顺序依次请求服务器,如果服务器挂掉,会自动剔除。

upstream backserver {
    server 192.168.0.14;
    server 192.168.0.15;
}

2、权重 : 指定每个服务器的权重比例,如两台服务器配置不一样时,想让性能好的多出力,如:15的服务器是14服务器访问几率的2倍。

upstream backserver {
    server 192.168.0.14 weight=1;
    server 192.168.0.15 weight=2;
}

3、 iphash 如果用户在14服务器上登录了,在15服务器上是没有登录的,这时不应该让用户去到15服务器,这时可以使用iphash经过一个算法后去他应该去的服务器(ip的hash值,访问过15服务器以后就会记住,以后就访问15服务器)

upstream backserver {
    ip_hash;
    server 192.168.0.14 weight=1;
    server 192.168.0.15 weight=2;
}

4、最少连接数 将请求分配到链接最少的服务器上

upstream backserver {
    least_conn;
    server 192.168.0.14 weight=1;
    server 192.168.0.15 weight=2;
}

Ngnix 配置:

#user  nobody;
worker_processes  4;
events {
    # 最大并发数
    worker_connections  1024;
}
http{
    # 待选服务器列表
    upstream myproject{
        # ip_hash指令,将同一用户引入同一服务器。
        ip_hash;
        server 125.219.42.4 fail_timeout=60s;
        server 172.31.2.183;
        }

    server{
                # 监听端口
                listen 80;
                # 根目录下
                location / {
                    # 选择哪个服务器列表
                    proxy_pass http://myproject;
                }

            }
}

 

原文地址:https://www.cnblogs.com/baidawei/p/13261527.html