• nginx介绍以及nginx的反向代理


    什么是nginx?

      Nginx 是一个高性能的轻量级的HTTP和反向代理服务器,也是一个邮件服务器。

    下载地址

      本人使用的是Tengine,它是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。下载地址是:http://tengine.taobao.org/download.html

    安装

      首先需要安装依赖,执行命令:

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

      编译:

    make && make install

      默认安装在路径:/usr/local/nginx

    添加nginx为linux系统服务(service nginx start/stop/reload)

      1、在/etc/init.d/目录下创建脚本文件,名为nginx

      1 #!/bin/sh 
      2 # 
      3 # nginx - this script starts and stops the nginx daemon 
      4 # 
      5 # chkconfig:   - 85 15 
      6 # description: Nginx is an HTTP(S) server, HTTP(S) reverse  
      7 #               proxy and IMAP/POP3 proxy server 
      8 # processname: nginx 
      9 # config:      /etc/nginx/nginx.conf 
     10 # config:      /etc/sysconfig/nginx 
     11 # pidfile:     /var/run/nginx.pid 
     12 
     13 # Source function library. 
     14 . /etc/rc.d/init.d/functions 
     15 
     16 # Source networking configuration. 
     17 . /etc/sysconfig/network 
     18 
     19 # Check that networking is up. 
     20 [ "$NETWORKING" = "no" ] && exit 0 
     21 
     22 nginx="/usr/local/nginx/sbin/nginx" 
     23 prog=$(basename $nginx) 
     24 
     25 NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" 
     26 
     27 [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx 
     28 
     29 lockfile=/var/lock/subsys/nginx 
     30 
     31 start() { 
     32     [ -x $nginx ] || exit 5 
     33     [ -f $NGINX_CONF_FILE ] || exit 6 
     34     echo -n $"Starting $prog: " 
     35     daemon $nginx -c $NGINX_CONF_FILE 
     36     retval=$? 
     37     echo 
     38     [ $retval -eq 0 ] && touch $lockfile 
     39     return $retval 
     40 } 
     41 
     42 stop() { 
     43     echo -n $"Stopping $prog: " 
     44     killproc $prog -QUIT 
     45     retval=$? 
     46     echo 
     47     [ $retval -eq 0 ] && rm -f $lockfile 
     48     return $retval 
     49 killall -9 nginx 
     50 } 
     51 
     52 restart() { 
     53     configtest || return $? 
     54     stop 
     55     sleep 1 
     56     start 
     57 } 
     58 
     59 reload() { 
     60     configtest || return $? 
     61     echo -n $"Reloading $prog: " 
     62     killproc $nginx -HUP 
     63 RETVAL=$? 
     64     echo 
     65 } 
     66 
     67 force_reload() { 
     68     restart 
     69 } 
     70 
     71 configtest() { 
     72 $nginx -t -c $NGINX_CONF_FILE 
     73 } 
     74 
     75 rh_status() { 
     76     status $prog 
     77 } 
     78 
     79 rh_status_q() { 
     80     rh_status >/dev/null 2>&1 
     81 } 
     82 
     83 case "$1" in 
     84     start) 
     85         rh_status_q && exit 0 
     86     $1 
     87         ;; 
     88     stop) 
     89         rh_status_q || exit 0 
     90         $1 
     91         ;; 
     92     restart|configtest) 
     93         $1 
     94         ;; 
     95     reload) 
     96         rh_status_q || exit 7 
     97         $1 
     98         ;; 
     99     force-reload) 
    100         force_reload 
    101         ;; 
    102     status) 
    103         rh_status 
    104         ;; 
    105     condrestart|try-restart) 
    106         rh_status_q || exit 0 
    107             ;; 
    108     *)    
    109       echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" 
    110         exit 2 
    111 esac  
    View Code

      2、修改脚本权限:   chmod 755 /etc/init.d/nginx

      3、添加到系统服务并开机自动启动nginx:   chkconfig nginx on

      4、nginx启动、停止、无间断服务重新加载

    [root@hadoop1-1 conf]#  service nginx stop
    Stopping nginx: [  OK  ]
    [root@hadoop1-1 conf]#  service nginx start
    Starting nginx: [  OK  ]
    [root@hadoop1-1 conf]#  service nginx reload
    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
    Reloading nginx: [  OK  ]

     nginx反向代理设置

      1、之前讲过Apache httpd的反向代理,关于反向代理的基础在这里不做重复解释,有兴趣可以查看另一篇博客:http://www.cnblogs.com/skyfeng/articles/6628903.html

      2、环境:

        nginx:192.168.2.100

        tomcat1:192.168.2.110

        tomcat2:192.168.2.120

      3、配置配置文件nginx.conf

        #设定负载均衡的应用服务器列表
        #weigth参数表示权值,值越大被分配到的概率越大
        upstream tomcat{
            server 192.168.2.110:8088 weight=2;
            server 192.168.2.120:8088 weight=1;
        }
    
        server{
            listen       8080;
            server_name  localhost;
            location /tomcat {
               proxy_pass http://tomcat/; #在这里设置一个代理,和upstream的名字一样
               proxy_redirect off; 
               #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
               proxy_set_header Host $host; 
               proxy_set_header X-Real-IP $remote_addr; 
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
            }
        }

    测试

    修改完成之后执行命令:service nginx reload

    在浏览器中输入地址:http://192.168.2.100:8080/tomcat

    进行刷新,出现如下图页面表示nginx反向代理设置成功!!!

  • 相关阅读:
    我常用到的前端工具
    三级菜单
    voxel安装2
    voxel安装
    Linux 安装 nginx
    pip DEPRECATION: The default format will switch to columns”错误
    Python升级安装的一些问题
    Linux下修改Apache即httpd的端口
    Linux中yum命令镜像源和出错解决方案
    Linux 别名 Apache
  • 原文地址:https://www.cnblogs.com/skyfeng/p/6750223.html
Copyright © 2020-2023  润新知