nginx 二 配置conf

nginx/conf/nginx.conf 文件 说明

#user  nobody;        #配置 worker 进程运行用户 默认 nobody
worker_processes  4 ; # 配置工作进程数目,推荐 cpu 的线程数或者核心数,2双核4线程 配置 4 为宜

#error_log  logs/error.log;    # 配置日志文件位置,需要的把注解去掉。
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;    # 进程pid 可在这个目录下查看,也可以通过 ps -ef | grep nginx 查看

#配置worker 的连接数 也就是  上面设置的worker_processes  * worker_connections =  nginx 支持的总连接数。只有硬件够好。nginx 最大可有支持 5w 并发。
events {
    worker_connections  1024;
}

http {
    include       mime.types;  # 支持的格式 (具体可以去 conf目录下查看 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;   # 开启gzip 压缩输出

   # 配置 tomcat_1 在 8888 端口
    upstream tomcat1{
	  server 127.0.0.1:8888;
    }
    
   # 配置 tomcat_2 在 9999 端口
    upstream tomcat2{
	  server 127.0.0.1:9999;
    }

     # 外网访问  www.myyuming.com/haha  代理到 Tomcat_1
    server {
        listen    80;
        server_name  www.myyuming.com/haha;
		location / {
			proxy_pass http://tomcat1;
		}
		#保措时跳转到 下面的对于页面。
		error_page   404  500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/local/nginx/html;
        }
    }
    
    # 外网访问  www.myyuming.com/hehe 代理到 Tomcat_2
    server {
        listen    80;
        server_name  www.myyuming.com/hehe ;
		location / {
			proxy_pass http://tomcat2;
		}
		#保措时跳转到 下面的对于页面。
		error_page   404  500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/local/nginx/html;
        }
    }
    
   # include /etc/nginx/conf/*.conf;   # 表示可以配置子配置文件
    #配置 https 服务
    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

配置完成后收益下面的命令检查配置是否正常:

命令:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -t

重启服务命令:

命令: /usr/local/nginx/sbin/nginx -s reload

配置nginx 静态资源

假设:这个liunx 云服务器的 域名为 www.xxx.com

举例:我在liunx 的 更目录下创建了一个 test文件夹。在里面创建了一个 hello.html 文件

命令: cd /
命令: mkdir test
命令: cd test
命令: mkdir hello
命令:vi /test/hello/hello.html
-----------------vi 编辑模式---------------------
编辑:按 i 进入 输入模式 
编辑: 输入 hello world~~!
编辑:按 ESC  --> 冒号--》 wq --> 回车。
--------------编辑nginx.conf配置文件--------------------
命令:iv /usr/local/nginx/conf/nginx.conf

编辑如下(找到nginx。conf server{…location …} 的 位置,修改这个test/hello/hello.html 为nginx 首页)

    server {
      ... ....  
	        location / {            # / : 表示 网站的更目录   http://www.xxx.com 
	            root   /test/hello;        # 根目录
	            index  hello.html;     #默认访问 首页的文件。
	        }
	        
           # 也可以配置其他的  这样访问地址就成了  http://www.xxx.com/hello   
           # 这里特别注意   /hello 会被当成路径来访问 nginx 实际访问地址是    /test/hello/hello.html(我在这里被坑了很久  T^T 大家一定要注意)
	        location /hello{
	            root    /test;      
	            index  hello.html;  
	        }
	    ... ....
    }

重启nginx 服务器:

命令:/usr/local/nginx/sbin/nginx -s reload

好了配置完成了,现在下面两个地址都可以访问这个网页了:

http://www.xxx.com
http://www.xxx.com/hello

配置nginx 为负载均衡

配置方式如下:
在这里插入图片描述

负载均衡模式:

一共有4种

轮询 (默认)

权重(图上 weight 就是权重方式) 通过 配置 weight, 进行轮询,3 就轮询3次 1就轮询1次。可根据不同的计算机硬件配置区分配

ip_hash:将ip地址hash后指定给某台服务器,以后这个用户就只访问这台服务器,可以解决session共享问题,缺点,如果某台服务器挂了,那么这个服务器上的所有session 也就没了,一般不使用。

最少连接:ngin会选择多个服务器中连接数最少的那一台,有点:智能,缺点:所有服务器配置必须一样,否则,可能 1核 和 8核 分配的就是一样的连接数。

服务器模式

upstream backserver{
	server 192.168.0.0.1:8001;
	server 192.168.0.0.1:8002 backup;  #备份 当上面那台服务器挂了,才会使用这一台。否则不会访问。
}

upstream backserver{
	server 192.168.0.0.1:8001;
	server 192.168.0.0.1:8002 down;  #意味这台服务器为 关闭状态,nginx 不会访问他,用于服务升级时可以使用。
}

动静分离

什么是动静分离: 这里涉及到 并发访问的问题。
由于 nginx 只是作为反向代理,消息转发,消耗是极小的,可以达到 5w并发量。而 tomcat 等服务器 需要处理动态数据。所以一台tomcat 并发访问一般在 500 以内,超过 250 的并发量 响应速度就会在1秒以上了。
所以为了减轻 tomcat的访问压力,我们将应用内的静态资源 访问使用 nginx 来处理。这样可以大大的减轻tomcat 的负担。

这里我以tomcat为例。
1、在 tomcat webapp 目录下创建一个 test 文件夹

webapp目录下   mkdir  test

2、复制 tomcat 的 ROOT 文件的文件到 test 中去。

 ROOT目录下   cp ./* ./../test

3、剪切test 文件中的tomcat.png 到 /home/static/test 目录下

 test 目录下
 mkdir -p /home/static/test
 mv tomcat.png  /home/static/test

4、配置 nginx .conf 文件
测试应用文件目录为:

 应用部署:   tomcat/webapps/test           #test应用     8080 端口
 静态资源:   /home/static/test/                 # test文件夹下放自己 test 是应用名称

这里test是应用名称

         upstream www.test.com {
            server 127.0.0.1:8080;  #tomcat linux 下的访问地址。
       }
       #     这里特别要注意目录结构:
       server{ 
            location /test {   #把应用名称 配置过来
              proxy_pass http://www.test.com;
            }
            location ~.*\.(css|js|image|gif|png)$ {
               root /home/static; #这里只写到 静态资源的上一层目录就行。
             }
    	}

5、启动tomcat 和 nginx
nginx -s reload
6、这时你会发现你移除掉的tomcat.png 依然显示出来了。

##子配置文件: 在 conf文件加下 ,配置 xxx.conf 文件依然生效。
在配置文件最近下面 的 } 内加入

   include /etc/nginx/conf/*.conf;   # 表示可以配置子配置文件
 }
server {
        listen 82;
        server_name open.liyuecd.com;
        rewrite ^(.*) https://$server_name$1 permanent;
}

server {
        listen 443;
        server_name open.liyuecd.com;
#       ssl on;
        ssl_certificate /etc/nginx/cert/open/open.liyuecd.com.pem;
        ssl_certificate_key /etc/nginx/cert/open/open.liyuecd.com.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
        ssl_prefer_server_ciphers on;

        location / {
                proxy_set_header X-Real_IP $remote_addr;
                proxy_set_header Host $host;
                proxy_set_header X_Forward_For $proxy_add_x_forwarded_for;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_pass http://47.108.201.110:82/;
        }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
最近学习Nginx+tomcat实现 负载均衡。 首先大家注意: 本文章中没有session共享,关于session共享我会在下一篇中讲解,先实现Nginx+tomcat负载均衡再实现session共享。 从网上查了好多资料,多走了很多弯路,现在把自己成功的方法拿出来与大家分享。 Window7 我是在Win7上做的。不是什么Linux,网上好多资料,特别麻烦。 Nginx Nginx 比较好找到,直接去网上下载 网址: http://nginx.org/en/download.html 版本不作要求了,(比如1.2.9版本),都有。 JDK JAVA的各种环境都要有。 版本不要求 Tomcat 这里我给大家提供tomcat6 Tomcat各种版本的下载地址我也提供给大家:http://tomcat.apache.org/download-60.cgi 大家可以先用我tomcat6 学会了,在下载自己需要的版本。 词条科普 另外我把实现过程中遇到的知识点都总结好了,一起提供给大家学习。 步骤: 注:本例程以一台win7机器为例子,即同一台机器上装一个nginx和2个Tomcat。 且安装了JDK。 便于管理将用到的资料放在一个文件夹下 我在D盘 创建 server 文件夹 . 1. Nginx 下载直接解压缩到server,点nginx.exe 执行 安装后如果可用,可在任务管理其中找到如图类似,并且在浏览器中输入 http://localhost/ 浏览器显示如下两个图 说明成功 2.Tomcat 同样将自己下载的或者我提供的tomcat 放到D盘的server下不过要复制成两份或者多份。 命名如:(便于区别 我们只用两个来讲解 ,多个tomcat和两个原理是一样的) 1、server.xml配置 我们需要在一台机器上跑 2 个不同的 tomcat ,避免出现端口被占用的情况,为了规范统一,我们修改全部tomca端口。分别找到tomcat6的1和2 的conf下的 server.xml。 修改Server端口 找到Server将: 改为 XXXX 在这里表示不同的端口:我的两个 tomcat 分别使用 8005和8006; 2.1.2、修改Connector端口 找到Connector将: 改为 XXXX 在这里表示不同的端口:我的两个 tomcat 分别使用 8081和8082; 2.1.3、修改Engine端口 找到Engine将: 改为 tomcatX 在这里表示不同的tomcat,我的两个 tomcat 分别使用 tomcat1和tomcat2;来区分。 这个设置是主要用以tomcat的集群。 如果看不懂可以去看我提供的tomcat我已经改好了。 启动tomcat服务 分别到两个tomcat下,直接双击D:\server\apache-tomcat-6.0.39_1\bin\startup.bat启动tomcat1 D:\server\apache-tomcat-6.0.39_2\bin\startup.bat启动tomcat2 出现以下页面表示启动成功 在浏览器中输入 http://localhost:8081 http://localhost:8082 出现 标示成功 3、Nginx+Tomcat负载均衡配置 首先创建两个文件,这两个文件 我来提供,将这两个文件拷入Nginxconf文件夹下 1.proxy.conf 文件内容 #负责代理转发 proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值