初探nginx

nginx下的反向代理

Posted by TuoX on June 20, 2017

昨天跟大家分享了怎么用supervisor来作为守护进程。今天我们就来学习下,nginx的反向代理。


这里我们先说下什么是正向代理与反向代理。

正向代理

正向代理,最常见的就是我们用的翻墙工具,通过代理服务器来访问真正的服务器。比如你需要访问google,由于国内被河蟹了,所以你需要通过一个代理服务器来访问它,进行一个中转。

可以形容为正向代理隐藏真实客户端。这里服务端指的是google,客户端指的是输入google的人,而代理服务器只是一个中间转发者。

反向代理

反向代理,最常见的就是我们通过google搜索时,google的背后其实是有千千万万的服务器来进行支持的,它做了一个中转,把你的请求分发到不同的服务器。

可以形容为反向代理隐藏真实服务端。这里的客户端指是的输入google的人,服务端指的是google背后的服务器,而google只是一个中间转发者。

因为反向代理是中转客户端请求,所以它也多数用于负载均衡,本篇文章只是粗略的介绍了下反向代理功能,更强大的配置请查看官方文档。

废话不多说了,我们进入正题。

1.安装nginx

apt-get install nginx

2.查看一下nginx的配置

vi /etc/nginx/nginx.conf

nginx.conf

这个是部分的配置截图,我们查看的是下面的配置文件路径,会发现nginx会读取/etc/nginx/conf.d/*.conf和/etc/nginx/sites-enabled/*下面的文件。

所以我们只需要将文件名放在conf.d文件中就行。

昨天文章里面写到的一个用supervisor来监管python程序的小例子。今天,我们就反向代理到它。

3.配置一个反向代理

vi /etc/nginx/conf.d/test.conf

输入以下内容

server {
    server_name api.tuox.vip;
    listen 80;

    location / {
        proxy_pass_header Server;
        proxy_redirect off;
        proxy_pass http://127.0.0.1:8000;
    }
}

解释一下上面的配置内容,监听的是80端口,并且请求的域名为api.tuox.vip,转发到本机的8000端口。

4.重启一下nginx服务

service nginx restart

5.查看结果

result

6.一些基本命令

service nginx start         #开启nginx服务
service nginx stop          #停止nginx服务
service nginx restart       #重启nginx服务
service nginx reload        #重载nginx服务
nginx -t                    #测试配置是否正常

更多命令 可以使用nginx -h查看

总结

nginx非常强大,这篇文章只是一个粗浅的demo,大家可以通过查询资料、文档来学习、配置等。不懂不可怕,可怕的是不懂而不去学习。