Nginx


Nginx简介:


Web服务器,也是一款 反向代理服务器。


Nginx能干什么?


Nginx能干的事情很多,这里简单罗列一些:


1.可直接支持Rails和PHP的程序。


2.可作为HTTP反向代理服务器。


3.作为负载均衡服务器。


4.作为邮件代理服务器。


5.帮助实现前端动静分离。


Nginx特点:


高稳定、高性能、资源占用少、功能丰富、模块化结构、支持热部署


Nginx安装(Linux):


命令:yum  install gcc)


备注:可以输入gcc  -v 查询版本信息,看系统是否自带安装




nginx实现输入域名显示域名_nginx实现输入域名显示域名




nginx实现输入域名显示域名_nginx_02



命令:yum  install  pcre-devel)



nginx实现输入域名显示域名_重启_03




nginx实现输入域名显示域名_nginx_04



3、安装zlib( 命令:yum  install  zlib  zlib-devel )


nginx实现输入域名显示域名_nginx实现输入域名显示域名_05


命令:yum  install  openssl  openssl-devel)



nginx实现输入域名显示域名_重启_06



备注:如需要支持ssl,才需要安装openssl


yum  -y  install  gcc  zlib zlib-devel pcre-devel openssl openssl-devel


5、下载源码包,选择稳定版本,解压缩安装(http://www.nginx.org/


(1):  wget http://nginx.org/download/nginx-1.10.2.tar.gz


(2):  tar  -zxvf  nginx-1.10.2.tar.gz


nginx实现输入域名显示域名_重启_07


6.Nginx安装


注意:在安装nginx之前,一定要检测该系统是否成功安装了gcc编译器,以及其他所需软件。否则会报错:


nginx实现输入域名显示域名_nginx实现输入域名显示域名_08


因此要执行 :  yum  -y  install  gcc  zlib zlib-devel pcre-devel openssl openssl-devel


(1)进入nginx目录之后执行   ./configure


①:也可以指定安装目录,增加参数   --prefix=/usr/nginx


nginx实现输入域名显示域名_Nginx_09


②:编译 make


nginx实现输入域名显示域名_nginx实现输入域名显示域名_10


③:安装 make  install


nginx实现输入域名显示域名_Nginx_11


④:如果不指定路径,可以通过 whereis  nginx 进行查询


nginx实现输入域名显示域名_nginx实现输入域名显示域名_12


⑤:默认安装在 /usr/local/nginx


7、Nginx常用命令


①:测试配置文件:


安装路径下的  /nginx/sbin/nginx -t


nginx实现输入域名显示域名_nginx_13


②:启动命令:(启动之前最好将80接口在防火墙上配置一下,因为nginx的默认端口是80)


安装路径下的  /nginx/sbin/nginx


nginx实现输入域名显示域名_重启_14


③:停止命令:


安装路径下的 /nginx/sbin/nginx  -s stop


或者是:nginx  -s quit


nginx实现输入域名显示域名_nginx_15


④:重启命令:


安装路径下的  /nginx/sbin/nginx  -s  reload


⑤:查看进程命令:


ps  -ef  |  grep  nginx


⑥:平滑重启


kill -HUP  [Nginx主进程号(即查看进程命令查到的PID)]


⑦:增加防火墙访问权限:


1、   sudo  vim  /etc/sysconfig/iptables


nginx实现输入域名显示域名_Nginx_16


2、   -A  INPUT -p  tcp  -m  state  --state NEW  -m  tcp  --dport  80  -j  ACCEPT


nginx实现输入域名显示域名_Nginx_17


3、保存退出


4、重启防火墙


nginx实现输入域名显示域名_nginx_18


7、测试


nginx实现输入域名显示域名_nginx_19


域名解析配置


nginx是一款轻量级的web服务器,也是一款反向代理服务器(域名转发就是反向代理的功能)


1、进入nginx安装目录下的conf目录 (  /usr/local/nginx/conf  )下创建 文件夹 vhost


创建vhost文件夹,用来存放各个域名的conf文件,这样做是为了更方便管理各个域名的解析,否则都写在nginx.conf下,随着时间的发展,内容会越来越多,不好管理。


nginx实现输入域名显示域名_Nginx_20


2、修改 /usr/local/nginx/conf  下的 nginx.conf文件


nginx实现输入域名显示域名_nginx实现输入域名显示域名_21


nginx实现输入域名显示域名_nginx实现输入域名显示域名_22


3、修改一下linux操作系统上的 hosts文件,


因为要通过配置hosts文件配置通知域名映射到对应的IP地址上。(因为我没有域名,只能通过host文件在本地模拟了)


nginx实现输入域名显示域名_nginx实现输入域名显示域名_23


nginx实现输入域名显示域名_nginx实现输入域名显示域名_24




4、配置www.btt.com.conf文件


在/usr/local/nginx/conf/vhost目录下创建并配置该文件。


nginx实现输入域名显示域名_重启_25


server {
  listen 80;#监听的是80端口
  #自动创建索引,如果为off,那么nginx就会给首页403错误,但要是知道了文件的具体路径,那么还是可以访问的
  #意思是你访问的时候,会把文件夹下的东西以目录的形式像你展示,例如下载软件的服务器,他就会有各种的软件的目录,当然对于一些js文件什么的,
  #我们不想让别人看见,就会设置成off
  autoindex on;
  server_name btt.com www.btt.com;#线上的域名
  access_log /usr/local/nginx/logs/access.log combined;
  #默认不输入其他东西,打开首页的顺序
  index index.html index.htm index.jsp index.php;
  if ( $query_string ~* ".*[\;'\<\>].*" ){
        return 404;
  }
  #如果输入了线上的域名,那么就会跳转到tomcat上
  location / {
        proxy_pass http://86.10.11.111:8080/;
	#add_header Access-Control-Allow-Origin *;
  }
}



nginx实现输入域名显示域名_nginx实现输入域名显示域名_26


5、在防火墙上开发端口


nginx实现输入域名显示域名_Nginx_27


6、启动tomcat服务器、与nginx服务器,并访问



nginx实现输入域名显示域名_重启_28




nginx实现输入域名显示域名_重启_29

nginx实现输入域名显示域名_nginx_30




7、配置image.btt.com.conf


域名转发到  文件夹上(转发到文件服务器上)



nginx实现输入域名显示域名_重启_31



server {
    listen 80;
    autoindex off;
    server_name image.btt.com;
    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 /home/ftpfile/img/;
        add_header Access-Control-Allow-Origin *;
    }
}


nginx实现输入域名显示域名_nginx_32




在之前搭建的文件服务器上 创建img文件夹 并存放图片


nginx实现输入域名显示域名_Nginx_33




重启nginx服务器与ftp文件服务器


nginx实现输入域名显示域名_nginx实现输入域名显示域名_34


访问并验证


nginx实现输入域名显示域名_nginx_35


nginx实现输入域名显示域名_Nginx_36