Nginx是什么
Nginx是一款轻量级的web服务器,也是一款反向代理服务器,这个实战里面主要作为http反向代理服务器,还可以作为负载均衡服务器、邮件代理服务器、实现前端动静分离
安装依赖
需要安装一些依赖,如果有就可以不再次安装,没有就装上呗~
#安装gcc
yum install gcc
#安装pcre
yum install pcre-devel
#安装zlib
yum install zlib zlib-devel
#安装OpenSSL
yum install openssl openssl-devel
下载安装
#这里我下载最新的稳定版
wget http://101.96.10.63/nginx.org/download/nginx-1.12.1.tar.gz
#解压缩
tar -zxvf nginx-1.12.1.tar.gz
#进入Nginx文件夹
cd nginx-1.12.1
#执行./configure,就安装在默认目录/usr/local/nginx
./configure
#最后,这样安装完成
make
make install
#可以查看安装位置
whereis nginx
Nginx常用命令
测试配置文件
进入nginx安装目录下的/nginx/sbin
执行./nginx -t
启动命令
还是上面那个位置,执行./nginx
停止命令
./nginx -s stop
或者./nginx -s quit
重启命令
./nginx -s reload
通过查看进程平滑重启
#查看nginx进程
ps -ef | grep nginx
#平滑重启
kill -HUP 前面查出来的PID号
再次为nginx配置防火墙
vim /etc/sysconfig/iptables
#往合适位置添加
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
#保存退出,重启防火墙,阿里云控制台里面80端口我已经打开,这里就不赘述了
service iptables restart
Nginx虚拟域名(端口转发、目录转发)
这里我暂时先不跟老师一样配置这个,配置完以上,直接浏览器访问我的阿里云ip地址就能看到如下截图
如果买了域名并配置了解析,还能用自己的域名访问到O(∩_∩)O哈哈~自己起个生僻点的价格不贵~
开始配置反向代理哈~
#编辑nginx配置
vim /usr/local/nginx/conf/nginx.conf
#在里面增加一行include vhost/*.conf,这样做体现分层配置的思想,不要把所有的配置都加在一个文件中
#在/usr/local/nginx/conf/下新建vhost文件夹
#新建一个winxblast.top.conf文件
vim winxblast.top.conf
添加以下内容
#这样我就通过nginx反向代理了tomcat,从80端口到8080端口,这样在防火墙中就不用把8080端口开放了
server {
default_type 'text/html';
charset utf-8;
listen 80; //监听80端口
autoindex on; //是否创建首页的索引目录
server_name www.winxblast.top; //把对该域名的请求转移到下面location中填写的地址
access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.jsp index.php;
#error_page 404 /404.html;
if ( $query_string ~* ".*[\;'\<\>].*" ) {
return 404;
}
location / {
proxy_pass http://127.0.0.1:8080; //如果是转发到文件目录,则使用root+目录位置
add_header Access-Control-Allow-Origin *;
}
}
重启nginx试试就可以啦
目录转发及其意义
上面讲了Nginx能实现某个域名请求过来转发到某个文件目录,这里我让img.happymall.winxblast.top转发到之前设置的ftp文件夹,这样后期通过Apache开源包,在商店商品管理后台上将商品图片等传入这个图片目录下。这么做更大的意义在于,以后访问量增大时,可以把文件服务器单独设立出来,以提高性能,更好的实现架构的扩展。
#还是在/usr/local/nginx/conf/vhost/下新建一个配置文件img.happymall.winxblast.top.conf
#添加如下内容
server {
listen 80;
autoindex off;
server_name img.happymall.winxblast.top;
access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.jsp index.php;
#error_page 404 /404.html;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location ~ /(mmall_fe|mmall_admin_fe)/dist/view/* {
deny all;
}
location / {
root /ftpfile/; //这里的文件位置以后可能会更改
add_header Access-Control-Allow-Origin *;
}
}
最后提醒一句,别忘了给这个二级域名添加DNS解析,不然就访问不到咯···
这样我们就能访问到里面的图片了
再附一张老师的架构讲解图
这里将file server和session server分离出来以实现更好的性能。