第一讲—Nginx入门实战

一、Nginx简介(请参照百度百科:http://baike.baidu.com/link?url=PRIWGgRbmWk88tTUZi_FWFs9J7U-XmYtEeG3g9IO0T_m8EHKWdyue_pA9prkaSkNSVmxNMmI0tjeAw2xuFxzXq

二、Nginx安装

    2.1  安装Nginx需要先安装pcre和openssl,本次安装的操作系统为MacOS,安装起来非常简单,只要使用BrewHome执行以下命令,即可完成安装。

brew install nginx

   brew命令检测到需要pcre和openssl会自动安装,安装过程中如果遇到问题,brew命令都会给出错误的具体原因,只要根据提示,把错误一个个解决掉,就能完成安装。

   安装完成后,检查是否安装成功:访问localhost (nginx默认监听的端口为80),出现欢迎页面,安装成功。

  查看Ngnix版本号

nginx - v

   显示nginx版本号,nginx配置文件的位置为:/usr/local/etc/nginx.conf

   如果你是自己编译和安装的,不知道配置文件在什么位置,使用如下命令搜索nginx.conf文件即可

sudo find / -name "nginx.conf"

  

三、Tomcat应用使用Nginx代理,负载均衡

    3.1 启动一个Tomcat,里面放自己的WEB应用,假设Tomcat的端口为9000。

    3.2 修改Nginx配置文件,详情如下

#user  nobody;                  #运行用户
worker_processes  1;            #启动进程,一般设置成和CPU数量
error_log  /Users/Minutch/nginxDir/error.log  info; #Nginx日志地址,info级别
pid       /Users/Minutch/nginxDir/nginx.pid; #Nginx进程id
 
#工作模式及连接数上限
events {   
     worker_connections  1024;#单个后台worker process进程的最大并发链接数
}
 
 
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
     include       mime.types;    #设定mime类型,类型由mime.type文件定义
     default_type  application/octet-stream;
     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
     #                  '$status $body_bytes_sent "$http_referer" '
     #      
     #access_log  logs/access.log  main;
     sendfile        on; #必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.
     #tcp_nopush     on;
     #keepalive_timeout  0;
     keepalive_timeout  65;  #连接超时时间
     gzip  on;
 
 
     #设置负载均衡服务器列表
     upstream saint {
         #weigth参数表示权值,权值越高被分配到的几率越大
         #本机上的Squid开启3128端口
         #server 192.168.8.1:3128 weight=5;
         #server 192.168.8.2:80  weight=1;
         #server 192.168.8.3:80  weight=6;
         #server   127.0.0.1:9000;
         server   127.0.0.1:9001;     #Tomcat的IP:Port
   }
 
     server {
         listen       80; #监听80端口
         server_name  localhost;
         
         #以下4个选项未配置的时候,会导致在Spring authentication进行权限验证时生成的host无法解析,不知道为什么
         rewrite ^/$ /saint redirect;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
 
         #配置代理的请求url
         location /saint/ {
             proxy_pass http://saint;  #这里的saint为设置负载均衡里upstream saint配置的名称,他会自动从upstream saint找到代理的一个服务器,具体的策略后续再讲,默认方式为轮询。
             proxy_redirect default;
        
          
         #默认请求url
         location / { 
         proxy_pass http://saint;
         root html;
         index index.html index.htm;
     }
         #error_page  404              /404.html;
         # redirect server error pages to the static page /50x.html
         #
         error_page   500 502 503 504  /50x.html;
         location = /50x.html {
             root   html;
         }
         # proxy the PHP scripts to Apache listening on 127.0.0.1:80
         #
         #location ~ \.php$ {
         #    proxy_pass   http://127.0.0.1;
         #}
 
         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
         #
         #location ~ \.php$ {
         #    root           html;
         #    fastcgi_pass   127.0.0.1:9000;
         #    fastcgi_index  index.php;
         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
         #    include        fastcgi_params;
         #}
 
         # deny access to .htaccess files, if Apache's document root
         # concurs with nginx's one
         #
         #location ~ /\.ht {
         #    deny  all;
         #}
     }
 
     # another virtual host using mix of IP-, name-, and port-based configuration
     #
     #server {
     #    listen       8000;
     #    listen       somename:8080;
     #    server_name  somename  alias  another.alias;
 
     #    location / {
     #        root   html;
     #        index  index.html index.htm;
     #    }
     #}
 
     # 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;
     #    }
     #}
}

 

   四、Nginx停止与启动

       4.1 修改完配置文件,如果有需要重启Nginx,命令如下

           停止Nginx命令:

sudo nginx -s stop 

           启动Nginx命令:

sudo nginx

           Nginx帮助命令:

sudo -h

 

 五、使用nginx访问tomcat下的应用

         localhost/${app_name},会自动定向到upstream配置的服务器列表下的应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值