反向代理服务器-Nginx(1)

Nginx反向代理服务器(1)

关于代理
  • 正向代理

比如你翻墙看国外的网站,挂vpn,这就是正向代理,代理的是客户端,
对于服务器而言,他不知道具体的访问者,只知道代理服务器

  • 反向代理

当你访问百度,反向代理服务器对请求进行代理,分发到具体的服务,代理的是服务端
对客户端而言,不知道具体的服务器,只知道代理服务器

  • 常用的web服务器

如 apache tomcat weblogic nginx jetty…
其中 apahce nginx属于静态服务器 tomcat这种属于动态web服务器

Nginx

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

  • 支持50000的并发量,对系统资源消耗比较少,tomcat这种就只有几百的并发量
  • 执行示意图
    在这里插入图片描述

客户端发送的请求通过nginx被分发到相应的服务器上进行处理

nginx的安装
  • 由于我安装了nginx 所以先卸载
[root@localhost tmp]# yum remove nginx
  • 可以看到已经删除了
[root@localhost tmp]# which nginx
/usr/bin/which: no nginx in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
  • 接下来开始安装了,先上传安装包并解压
  • 如果提示没有相关命令,看第二段,安装相关库
  • 执行如下命令
[root@localhost nginx-1.10.3]# ./configure --prefix=/apdoer/data/pro/nginx

如果不指定目录安装,会默认安装到usr/local下默认路径

  • 编译和安装
[root@localhost nginx-1.10.3]# make && make install
  • 安装完成如下
[root@localhost nginx-1.10.3]# cd /apdoer/data/pro/nginx/
[root@localhost nginx]# ls
conf  html  logs  sbin
  • 启动
# 指定配置文件启动,也可以不指定直接启动,那样就会加载默认的配置文件,可以通过配置文件启动多个实例
# -c表示指定配置文件,默认NGINX_HOME/conf/nginx.conf配置文件
[root@localhost sbin]# ./nginx -c /apdoer/data/pro/nginx/conf/nginx.conf
  • 停止
# 发送信号的方式
kill -quit 进程号
kill -term 进程号
# 脚本命令
./nginx -s stop 停止
./nginx -s reload 重启
./nginx -s quit     退出
  • 当访问192.168.37.12:80访问如下,证明启动成功
    在这里插入图片描述

安装中可能出现的问题

  • 缺少pcre依赖
  • 缺少openssl的依赖
  • 解决:安装相关依赖
    • yum install pcre-devel
    • yum install openssl-devel
    • yum install zlib-devel

配置文件详解

nginx.conf文件简单配置解释如下

# 运行nginx的时候有两个线程,通过ps -ef|grep nginx可以查看
# 线程数在这里配置,配置成和cpu核心数一样可以减少上下文切换 
worker_processes  1;

# 配置日志,没什么好说的
# error_log logs/error.log;
# error_log logs/error.log notice;
# #error_log logs/error.log info;
#
#         #pid logs/nginx.pid


#event段,可以配置io网络模型
events {
   # use epoll #网络io模型,linux使用的是epoll
    worker_connections  1024; #允许连接数
}

http {
    include       mime.types; # 浏览器支持的一些后缀名称
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  60;

    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;
        }
    }

        # 基于域名的虚拟主机
    server {
        listen        80;
        server_name  www.apdoer.com;

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

虚拟主机配置

  • 基于域名的虚拟主机
    • 配置域名解析映射关系C:\Windows\System32\drivers\etc下hosts文件下加一行192.168.37.12 www.apdoer.com
    • 在html中新建文件夹apdoer,并新建index.html文件,写上Apdoer_nginx
    • 在nginx.conf配置文件中添加如下,具体的作用在代码中有写
       # 基于域名的虚拟主机
    server {
        listen        80; #监听80端口
        server_name  www.apdoer.com; # 当访问www.apdoer.com本地域名解析会映射到192.168.37.12
        location / {
            root html/apdoer; #目录改为html目录下的apdoer目录
            index index.html index.htm;
        }
    }
- 然后访问www.apdoer.com可以看到代理成功

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值