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  

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

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

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

[[email protected]1 conf]#  service nginx stop
Stopping nginx: [  OK  ]
[[email protected]-1 conf]#  service nginx start
Starting nginx: [  OK  ]
[[email protected]-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反向代理设置成功!!!

时间: 2024-08-27 03:02:19

nginx介绍以及nginx的反向代理的相关文章

高性能Web服务之Nginx+Tomcat实现负债均衡反向代理及动静分离

在实际生产中,Tomcat服务器一般不单独使用在项目中,对于静态资源的响应Nginx表现的比较好,另外由于nginx是专门用于反向代理的服务器,所以很容易实现将java的请求转发到后端交给tomcat容器处理,而本身用来处理静态资源. 通常tomcat前端是nginx或apache,后端都为tomcat,也就意味着无论前端是什么角色都是以代理的方式进行工作的;但是要注意的是如果基于nginx做反向代理,转发请求到tomcat的时候是基于http协议进行转发的:但注意的是tomcat的连接器有ht

Nginx + Tomcat + Ngx_cache_purge 实现高效反向代理

Nginx + Tomcat + Ngx_cache_purge 实现高效反向代理Nginx + Tomcat + Ngx_cache_purge 实现高效反向代理Nginx + Tomcat + Ngx_cache_purge 实现高效反向代理Nginx + Tomcat + Ngx_cache_purge 实现高效反向代理Nginx + Tomcat + Ngx_cache_purge 实现高效反向代理 bangumi.tv//group/topic/145491 bangumi.tv//g

Nginx入门与基础之反向代理配置介绍

众所周知,nginx是一个很优秀的反向代理服务器,它反向代理的性能堪比haproxy,在很多应用场景中,nginx常常单独作为反向代理server+keepalived的配合构建高性能,高可用集群,下面我们讲讲nginx配置反向代理时一些常用配置参数说明,如下: 一. nginx反向代理配置项说明 1.1 proxy_pass 语法:proxy_pass URL; 配置块:location.if 此配置项将当前请求反向代理到URL参数指定的服务器上,URL可以是主机名或IP地址加端口的形式,例如

Nginx HTTP 负载均衡和反向代理

1.负载均衡和反向代理介绍 负载均衡是多台服务器对称方式组成一个服务器的集合,每个服务器都能单独对外提供服务,通过负载均衡技术,将客户端请求均匀的分配到服务器集合中的某个服务器上,然后服务器独立响应客户端的请求,这样解决了高并发的访问. 反向代理是指以代理服务器接受用户请求,然后将请求,转发给内部网络上的服务器,并将从服务器上得到的结果返回给用户,这时代理服务器对外表现为一个服务器,代理服务器上没有保存任何的网页数据,所有的静态网页和CGI程序都保存在内部网络上的web服务器上,增加了web服务

Nginx HTTP负载均衡和反向代理配置

当前大并发的网站基本都采用了Nginx来做代理服务器,并且做缓存,来扛住大并发.先前也用nginx配置过简单的代理,今天有时间把整合过程拿出来和大家分享,不过其中大部分也是网上找来的资源. nginx完整的反向代理代码如下所示  : [[email protected] conf]# vim nginx.conf user  www www; worker_processes  10; error_log  /var/log/nginx/nginx_error.log; pid        l

NGINX之——配置HTTPS加密反向代理訪问–自签CA

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46695495 出于公司内部訪问考虑,採用的CA是本机Openssl自签名生成的,因此无法通过互联网工信Root CA验证,所以会出现该站点不受信任或安全证书无效的提示.直接跳过,直接訪问就可以! HTTPS的原理和訪问过程: server必要条件 一个server私钥 KEY文件 一张与server域名匹配的CA证书(公钥,依据私钥key生成) 訪问过程: 1,client浏览器

Nginx安装、性能测试、反向代理、负载均衡实例

一.nginx安装 我使用的环境是64位 Ubuntu 14.04.nginx依赖以下模块: l gzip模块需要 zlib 库 l rewrite模块需要 pcre 库 l ssl 功能需要openssl库 1.1.安装pcre l 获取pcre编译安装包,在http://www.pcre.org/上可以获取当前最新的版本 l 解压缩pcre-xx.tar.gz包. l 进入解压缩目录,执行./configure. l make & make install 1.2.安装openssl l 获

nginx监听端口和反向代理端口的权限问题

Linux的SELinux安全性控制除作用于文件系统外还作用于端口,这使得那些作为服务启动的进程只能在规定的几个端口上监听.为叙述方便我们称之为受控端口. nginx监听端口 要查看当前有哪些受控端口可执行: # semanage port -l | grep '^http_port_t' http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000 这里显示了八个端口号,其中包括80端口.由于nginx默认在80端口监听因此启动正常. # s

nginx域名转发 负载均衡 反向代理

公司有三台机器在机房,因为IP不够用,肯定要分出来,所以要建立单IP 多域名的反向代理, 就是当请求www.abc.com 跳转到本机, 请求www.bbc.com 跳转到192.168.0.35 机器上去, 前提 192.168.0.35 装了nginx和php环境. #vi /usr/local/nginx/conf/nginx.conf #修改其中的配置 upstream www # www可自定义,下面的名称可以用到 { server xxx.xxx.xxx.xxx:80 max_fai