Nginx的介绍

2019-05-23  本文已影响0人  伍陆柒_

什么是Nginx

1526187409033.png

NIO:not-blocking-io 非阻塞IO

BIO:blocking-IO 阻塞IO

nginx可以作为web服务器,但更多的时候,我们把它作为网关,因为它具备网关必备的功能:

nginx作为web服务器

Web服务器分2类:

区分:web服务器不能解析jsp等页面,只能处理js、css、html等静态资源。

并发:web服务器的并发能力远高于web应用服务器。

Nginx + tomcat

nginx作为反向代理

什么是反向代理?

nginx可以当做反向代理服务器来使用:

利用反向代理,就可以解决我们前面所说的端口问题,如图

1526016663674.png

安装和使用

下载:http://nginx.org/en/download.html
Windows直接下载解压即可使用
Linux

tar -xvf nginx-1.15.12.tar.gz
unzip nginx-1.15.12.zip
# 安装依赖包
yum -y install gcc gcc-c++ autoconf automake make
yum install pcre-devel
yum install zlib zlib-devel
yum install openssl openssl-devel

# 配置目录
./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx
# 编译安装
su root
make && make install 

这里指定安装的目录是在:/opt/nginx目录下

# 启动
nginx
ps -ef | grep nginx 查看进程
# 停止
nginx -s stop
# 重新加载
nginx -s reload
image.png
# 开机不启动,重启就关了
chkconfig iptables off
shutdown -r now
# 临时关闭
service iptables off

反向代理配置

找到/opt/nginx/的nginx.cof


1526188831504.png

nginx中的每个server就是一个反向代理配置,可以有多个server
完整配置:

user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
   
    keepalive_timeout  65;

    gzip  on;
    server {
        listen       80;
        server_name  manage.leyou.com;

        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        location / {
            proxy_pass http://127.0.0.1:9001; # 此处ip如果是本机写本机ip,如果nginx配置虚拟机上,需要反向代理的服务不再虚拟机上,请填写服务所在电脑ip
            proxy_connect_timeout 600;
            proxy_read_timeout 600;
        }
    }
    server {
        listen       80;
        server_name  api.leyou.com;

        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        location / {
            proxy_pass http://127.0.0.1:10010;
            proxy_connect_timeout 600;
            proxy_read_timeout 600;
        }
    }
}

重启nginx

nginx -s reload
上一篇下一篇

猜你喜欢

热点阅读