加载中...
Nginx
发表于:2021-07-16 | 分类: web服务
字数统计: 11k | 阅读时长: 10 mins.分钟 | 阅读量:

Nginx 初始

nginx是什么

     我们在学习Nginx时也采用同样的方式,先来看看Nginx的竞争对手——Apache、Lighttpd、Tomcat、Jetty、IIS,它们都是Web服务器,或者叫做WWW(World Wide Web)服务器,相应地也都具备Web服务器的基本功能:基于REST架构风格 [1] ,以统一资源描述符(Uniform Resource Identifier,URI)或者统一资源定位符(Uniform Resource Locator,URL)作为沟通依据,通过HTTP为浏览器等客户端程序提供各种网络服务。
     Tomcat和Jetty面向Java语言,先天就是重量级的Web服务器,它的性能与Nginx没有可比性。

apache的特点

     Apache有许多优点,如稳定、开源、跨平台等,但它出现的时间太长了,在它兴起的年代,互联网的产业规模远远比不上今天,所以它被设计成了一个重量级的、不支持高并发的Web服务器。

为什么选择Nginx

  • 更快
    这表现在两个方面:一方面,在正常情况下,单次请求会得到更快的响应;另一方面,在高峰期(如有数以万计的并发请求),Nginx可以比其他Web服务器更快地响应请求;
  • 高扩展性
    Nginx的设计极具扩展性,它完全是由多个不同功能、不同层次、不同类型且耦合度极低的模块组成;
  • 高可靠性
    高可靠性是我们选择Nginx的最基本条件,因为Nginx的可靠性是大家有目共睹的,很多家高流量网站都在核心服务器上大规模使用Nginx;
  • 低内存消耗
    一般情况下,10000个非活跃的HTTP Keep-Alive连接在Nginx中仅消耗2.5MB的内存,这是Nginx支持高并发连接的基础;
  • 单机支持10万以上的并发连接
    这是一个非常重要的特性!随着互联网的迅猛发展和互联网用户数量的成倍增长,各大公司、网站都需要应付海量并发请求,一个能够在峰值期顶住10万以上并发请求的Server,无疑会得到大家的青睐;
  • 热部署
    master管理进程与worker工作进程的分离设计,使得Nginx能够提供热部署功能,即可以在7×24小时不间断服务的前提下,升级Nginx的可执行文件;
  • 最自由的BSD许可协议
    这是Nginx可以快速发展的强大动力。BSD许可协议不只是允许用户免费使用Nginx,它还允许用户在自己的项目中直接使用或修改Nginx源码,然后发布;
  • Apache拥有丰富的模块组件支持,稳定性强,BUG少,动态内容处理强。
  • Nginx轻量级,占用资源少,负载均衡,高并发处理强,静态内容处理高效

部署Nginx服务

官网获取软件包

下载适合您的版本
以下是做测试用的版本

# wget http://nginx.org/download/nginx-1.15.5.tar.gz

如果您的主机上没有wget命令请安装
Centos RedHat 版本:

# sudo yum -y install wget

ubuntu Depin系列:

# sudo apt install wget

安装:

# mkdir /usr/local/nginx
# mv nginx-1.15.5.tar.gz  /usr/local/nginx/
# cd /usr/local/nginx/
# tar xf nginx-1.15.5.tar.gz
# cd nginx-1.15.5
# yum -y install gcc gcc-c++ pcre-devel   zlib-devel
# ./configure --prefix=/usr/local/nginx/
# make && make install

启动服务

/usr/local/nginx/sbin/nginx

选项

nginx -s stop|quit|raload|reopen

解释

stop — fast shutdown                                # 快速关机
quit — graceful shutdown                          # 优雅关机
reload — reloading the configuration file     # 重新加载配置文件
reopen — reopening the log files               # 重新代开日志文件

查看服务:默认是80端口

ps -ax | grep nginx

搭建虚拟主机

创建虚拟主机配置文件

# mkdir /usr/local/nginx/html/{gtxi,gtjb}
# echo "gongtongxuexi.com" > /usr/local/nginx/html/gtxi/index.html
# echo "gongtongjinbu.com" > /usr/local/nginx/html/gtjb/index.html

编辑配置文件:

配置文件所在位置 /usr/local/nginx/conf/nginx.conf
在配置文件定义虚拟主机加入:

server {
    listen       8080;
   # listen       somename:8080;
    server_name  www.gongtongxuexi.com;
    location / {
        root   html/gtxi;
        index  index.html index.htm;
    }
   }
server {
    listen       8081;
   # listen       somename:8080;
    server_name  www.gongtongjinbu.com;

    location / {
        root   html/gtjb;
        index  index.html index.htm;
    }
   }

重新加载配置文件:

/usr/local/nginx/sbin/nginx -s raload

验证:

打开浏览器访问 http//iP地址

配置文件解释:

keepalive_timeout  65;          # 设置连接超时时间
# 使用server定义虚拟主机
  server {
    listen       80;            # 监听端口
    server_name  localhost;     # 访问域名

    #charset koi8-r;            # 编码格式

    # 设置虚拟主机的访问日志
    #access_log  logs/host.access.log  main;  

    # 对URL进行匹配
    location / {
    # 设置网页根路径
        root   html;
    # 先找html文件,如果没有则htm
        index  index.html index.htm;
    }

HTTPS server

#
#server {
#    listen       443 ssl;         监听端口
#    server_name  localhost;       访问域名
	指定证书文件,使用相对路径证书需要在与Nginx.conf同目录下
#    ssl_certificate      cert.pem;
#    ssl_certificate_key  cert.key;
		指定会话缓存
#    ssl_session_cache    shared:SSL:1m;
#    ssl_session_timeout  5m;

#    ssl_ciphers  HIGH:!aNULL:!MD5;
#    ssl_prefer_server_ciphers  on;

#    location / {
#        root   html;
#        index  index.html index.htm;
#    }

网站的错误代码:

1xx: 代表提示信息
2xx: 代表成功信息
3xx: 代表重定向
4xx:代表客户端错误信息
5xx: 代表服务器错误信息

Nginx实现反向代理

代理服务器

1、什么是代理服务器
代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机。
2、为什么要使用代理服务器
1)提高访问速度
由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门站点能明显提高请求速度。
2)防火墙作用
    由于所有的客户机请求都必须通过代理服务器访问远程站点,因此可在代理服务器上设限,过滤某些不安全信息。
3)通过代理服务器访问不能访问的目标站点
    互联网上有许多开发的代理服务器,客户机在访问受限时,可通过不受限的代理服务器访问目标站点,通俗说,我们使用的翻墙浏览器就是利用了代理服务器,虽然不能出国,但也可直接访问外网。

反向代理 VS 正向代理

1、什么是正向代理?什么是反向代理?

正向代理,架设在客户机与目标主机之间,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。

反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量,将客户机请求转发给内部网络上的目标服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器与目标主机一起对外表现为一个服务器。

2、反向代理有哪些主要应用?

现在许多大型web网站都用到反向代理。除了可以防止外网对内网服务器的恶性攻击、缓存以减少服务器的压力和访问安全控制之外,还可以进行负载均衡,将用户请求分配给多个服务器。

 upstream web1.com{
           server 192.168.122.206;
   }
 upstream web2.com{
           server 192.168.122.84;
   }

server {
    listen       80;
  # listen       someme:8080;
   server_name www.web1.com;
location / {
      proxy_pass  http://web1.com;
      index  index.html index.htm;
    }
  }

 server {
     listen       80;
   # listen       somename:8080;
     server_name  www.web2.com;

  location / {
     proxy_pass   http://web2.com;
     index  index.html index.htm;
      }
   }
上一篇:
MySQL
下一篇:
Apache
本文目录
本文目录