Nginx 是一款高性能的 http 服务器 / 反向代理服务器及电子邮件( IMAP/POP3 )代理服
务器。由俄罗斯的程序设计师 Igor Sysoev 所开发,官方测试 nginx 能够支支撑 5 万并发
链接,并且 cpu 、内存等资源消耗却非常低,运行非常稳定
2 Nginx 应用场景:
1 、 http 服务器。 Nginx 是一个 http 服务可以独立提供 http 服务。可以做网页静态服
务器。
2 、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
3 、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户
的请求时,需要用多台服务器集群可以使用 nginx 做反向代理。并且多台服务器可以平均
分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
3 Nginx 在 Linux 下的安装
第一步: 安装 gcc 的环境 执行命令联网自动下载
yum install gcc-c++ |
库。 nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库。
yum install -y pcre pcre-devel |
gzip ,所以需要在 linux 上安装 zlib 库。
yum install -y zlib zlib-devel |
封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。 nginx 不仅支持
http 协议,还支持 https (即在 ssl 协议上传输 http ),所以需要在 linux 安装 openssl 库。
yum install -y openssl openssl-devel |
第五步:Nginx 正式安装
把 nginx 的源码包 nginx-1.8.0.tar.gz 上传到 linux 系统
解压缩
tar zxvf nginx-1.8.0.tar.gz |
--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 文件 |
--prefix=/usr \ 指向安装目录 --sbin-path=/usr/sbin/nginx \ 指向(执行)程序文件(nginx) --conf-path=/etc/nginx/nginx.conf \ 指向配置文件 --error-log-path=/var/log/nginx/error.log \ 指向 log --http-log-path=/var/log/nginx/access.log \ 指向 http-log --pid-path=/var/run/nginx/nginx.pid \ 指向 pid --lock-path=/var/lock/nginx.lock \ (安装文件锁定,防止安装文件被别人利用,或自己 误操作。) --user=nginx \ --group=nginx \ --with-http_ssl_module \ 启用 ngx_http_ssl_module 支持(使支持 https 请求,需已安装 openssl) --with-http_flv_module \ 启用 ngx_http_flv_module 支持(提供寻求内存使用基于时间的 偏移量文件) --with-http_stub_status_module \ 启用 ngx_http_stub_status_module 支持(获取 nginx 自上次启 动以来的工作状态) --with-http_gzip_static_module \ 启用 ngx_http_gzip_static_module 支持(在线实时压缩输出数据 流) --http-client-body-temp-path=/var/tmp/nginx/client/ \ 设定 http 客户端请求临时文件路径 --http-proxy-temp-path=/var/tmp/nginx/proxy/ \ 设定 http 代理临时文件路径 --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \ 设定 http fastcgi 临时文件路径 --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ 设定 http uwsgi 临时文件路径 --http-scgi-temp-path=/var/tmp/nginx/scgi \ 设定 http scgi 临时文件路径 --with-pcre 启用 pcre 库 |
make install |
注意:启动 nginx 之前,上边将临时文件目录指定为 /var/temp/nginx/client , 需要在 /var 下
创建此 目录
mkdir /var/temp/nginx/client -p |
进入到 Nginx 目录下的 sbin 目录
cd /usr/local/ngiux/sbin |
输入命令启动 Nginx
./nginx |
启动后查看进程
ps aux|grep nginx |
输入网址默认80端口访问即可
关闭 nginx:
./nginx -s stop |
./nginx -s reload |
4 静态网站的部署
将我们生成的静态页面上传到服务器的/nginx/html 下即可访问
端口绑定
修改 Nginx 的配置文件:nginx/conf/nginx.conf
举例
将前端静态页 cart.html 以及图片样式等资源 上传至 nginx/cart 下
将前端静态页 search.html 以及图片样式等资源 上传至 nginx/search 下
server { listen 81; server_name localhost; location / { root cart; #root 代表监听的目录 index cart.html; #index 默认访问的页面 } } server { listen 82; server_name localhost; location / { root search; index search.html; } } |
地址栏输入 http://192.168.25.141:82 可以看到搜索页面
域名绑定
一个域名对应一个 ip 地址,一个 ip 地址可以被多个域名绑定。
本地测试可以修改 hosts 文件(C:\Windows\System32\drivers\etc)
举例
192.168.25.141 cart.pinyougou.com
192.168.25.141 search.pinyougou.com
server { listen 80; server_name cart.pinyougou.com; location / { root cart; index cart.html; } }
http://search.pinyougou.com/ |
在 Nginx 主机修改 Nginx 配置文件
最好先弄清正向代理和反向代理的含义
upstream tomcat-portal { server 192.168.25.141:8080; } |
server { listen 80; server_name www.pinyougou.com; location / { proxy_pass http://tomcat-portal; index index.html; } } |
测试反向代理流程: www.pinyougou.com---->tomcat-portal----->192.168.25.141:8080
upstream tomcat-portal { server 192.168.25.141:8080; server 192.168.25.141:8180 weight=2; server 192.168.25.141:8280; } |