linux下nginx安装配置测试

安装环境:

Centos 6.5
nginx-1.12.0.tar.gz
依赖包:
openssl-fips-2.0.16.tar.gz
pcre-8.32.tar.gz
zlib-1.2.11.tar.gz

nginx下载地址:http://nginx.org/en/download.html
nginx官方文档地址:http://nginx.org/en/docs/

安装步骤:

1.必须保证系统中安装了c++编译环境使用命令查看是否安装:

[root@linux ~]# rpm -qa|grep gcc*
libgcrypt-1.4.5-11.el6_4.x86_64
gconfmm26-2.28.0-1.el6.x86_64
libsigc++20-2.2.4.2-1.el6.x86_64
gnome-python2-gconf-2.28.0-3.el6.x86_64
pkgconfig-0.23-9.1.el6.x86_64
gcc-c++-4.4.7-23.el6.x86_64
gcalctool-5.28.2-3.el6.x86_64
crash-gcore-command-1.0-5.el6.x86_64
libgcc-4.4.7-23.el6.x86_64
gcc-4.4.7-23.el6.x86_64
pulseaudio-module-gconf-0.9.21-14.el6_3.x86_64

如果看到有gcc-4.4.7-23.el6.x86_64 和gcc-c+±4.4.7-23.el6.x86_64说明安装成功

2.如果没有安装:

[root@linux ~]# yum install gcc-c++

3.安装模块依赖:
安装顺序为:openssl库 - pcre库 – zlib库
首先解tar

[root@linux software]# tar -zxvf openssl-fips-2.0.16.tar.gz

接着进入解压后的目录执行配置->编译->安装

[root@linux openssl-fips-2.0.16]# ./config
[root@linux openssl-fips-2.0.16]# make
[root@linux openssl-fips-2.0.16]# make install

pcre库和zlib库是一样的安装方式,打开你们的脑洞。。。思考吧!!

4.安装nginx
首先解tar

[root@linux local]# tar -zxvf /usr/local/software/nginx-1.12.0.tar.gz 

接下来配置->编译->安装

[root@linux local]# cd nginx-1.12.0
[root@linux nginx-1.12.0]# ./configure
[root@linux nginx-1.12.0]# make
[root@linux nginx-1.12.0]# make install

nginx默认安装目录:/usr/local/nginx

5.开放80端口

[root@linux nginx-1.12.0]# vim /etc/sysconfig/iptables

6.启动nginx

[root@linux nginx-1.12.0]# /usr/local/nginx/sbin/nginx

启动报错
在这里插入图片描述原因就是在lib64目录找不到libpcre.so.1库解决办法:把该库软链到lib64位目录下
首先查找该库的位置:

[root@linux nginx-1.12.0]# whereis  libpcre.so.1

然后软链到lib64目录下(相当于快捷方式)

[root@linux nginx-1.12.0]#  ln –s /usr/local/lib/libpcre.so.1  /lib64/libpcre.so.1

7.查看是否启动成功:

[root@linux nginx-1.12.0]#  ps –ef| grep nginx

在这里插入图片描述ok.恭喜你安装成功!!!

nginx的一些常用命令:
停止:/usr/local/nginx/sbin/nginx –s stop
重启:/usr/local/nginx/sbin/nginx –s reload
检查配置文件(nginx.conf)是否合法:
usr/local/nginx/sbin/nginx –t

nginx的配置文件

#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    #access_log  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
    upstream itripbiz_server{		
	    server 127.0.0.1:8080; 
    }
    server{
      listen 80;
      server_name itrip.project.bdqn.cn; 
	  root /data/itrip/itripfront;
	  index index.html;	       
	    location / {
			
		}
		 location /itripbiz {
			  proxy_set_header Host $host;
	          proxy_set_header X-Real-IP $remote_addr;
	          proxy_pass http://itripbiz_server;
		}
	    location ~ .*\.(gif|jpg|png|html|mp3) {
	       expires 6h;	
	    }
	    location ~ .*\.(js|css)?$ {
	     	expires 2h;
	     }
 }
}

测试

a.需要创建目录/data/itrip/itripfront ,该目录下有一个文件index.html其内容如下:

<div id="test">============= Nginx Test ================</div>
<script src="jquery-1.7.2.js" type="text/javascript"></script>
<script>
$.ajax({
		type:"GET",//请求类型
		url:"/itripbiz/servlet/TestServlet",//请求的url		
		dataType:"json",//ajax接口(请求url)返回的数据类型
		success:function(data){//data:返回数据(json对象)
			alert(data.flag);
		
		}
	});
/*Controller和前台约定传递json格式的数据,因此前台ajax必须传递json格式的数据*/
</script>

同目录下需要jquery-1.7.2.js哦,别忘记了!!!
b.ajax请求的后端地址为 /itripbiz/servlet/TestServlet,所以需要将后端项目打成war部署到tomcat.
我将后端的关键代码贴出来:
TestServlet .java

public class TestServlet extends HttpServlet
{
  private static final Logger log = Logger.getLogger(TestServlet.class);

  public void destroy()
  {
    super.destroy();
  }

  public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    doPost(request, response);
  }

  public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException  {
    System.out.println(System.getProperty("itripbiz.root"));
    System.out.println("");
    log.debug("=====>请求进入 doPost");
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.print("{\"flag\":\"true\"}");
    log.debug("=====>返回{\"flag\":\"true\"}");
    out.flush();
    out.close();
    log.debug("=====>关闭响应流");
  }
}

web.xml

 <servlet>
    <servlet-name>TestServlet</servlet-name>
    <servlet-class>servlet.TestServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/servlet/TestServlet</url-pattern>
  </servlet-mapping>

c.启动nginx,在浏览器中输入itrip.project.bdqn.cn
在这里插入图片描述看到这个效果就说明反向代理成功!!
接下来测试轮询->热备->权重->iphash:需要配置两个tomcat,配置文件修改入下
轮询配置:

upstream itripbiz_server{
        server 127.0.0.1:8080; 
	    server 127.0.0.1:8081;
    }

效果应该是轮流访问。

热备配置:

upstream itripbiz_server{
        server 127.0.0.1:8080; 
	    server 127.0.0.1:8081 backup;
    }

效果:如果其中一台服务器宕机,那么可以启用热备。

权重配置

upstream itripbiz_server{
        server 127.0.0.1:8080; 
	    server 127.0.0.1:8081 weight=2;
    }

效果:8080访问一次,8081访问两次,然后在访问8080一次,8081两次。。依次类推。

ip_hash配置:

upstream itripbiz_server{
		ip_hash;
        server 127.0.0.1:8080; 
	    server 127.0.0.1:8081 ;
    }

效果:如果第一次访问的8080,那么以后每次都是访问8080,同理第一次访问的是8081,那么以后每次都是访问8081.
ip_hash可以解决tomcat之间session共享问题。

如果以上测试没有问题,那么恭喜你已经会使用nginx 了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值