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网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
客户端发送的请求通过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
- 编译和安装
[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的时候有两个线程,通过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;
}
}
}
虚拟主机配置
- 基于域名的虚拟主机
# 基于域名的虚拟主机
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可以看到代理成功
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。