nginx是我们在部署环境的过程中经常会使用的,对于传统的项目,如果我们需要做负载均衡的话,那么我们可能会使用到他,这个我们之前已经讲过了。我们本篇主要讲的是如何进行转发。
现在我们好多项目可能需要部署到云服务器上面,但是我们云服务器并不会对外开通好多个端口,比如我们现在有3个项目,在云服务器上面的端口分别为8080、8081和8082,传统方法我们就需要将这3个端口都暴露出来,阿里云的端口配置里面能配置,不然的话我们是无法访问到他的,但是我们可能不像暴露出来,为了安全,这个时候我们就可以通过nginx进行转发。因为在我们服务器内网中是可以互相使用端口的。
比如我们暴露我们的80端口给外部,这个端口的作用就是为了让外部访问,但是这个时候我们还没有进行项目的转发,加入我们8080的项目的path是以/v1开头的,而8081的项目是以/v2开头的,8083项目是以/v3开头的。这时候我们只需要在我们的ngixn。conf文件配置如下所示
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html/admange;
index index.html index.htm;
}
location /v1{
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /v2{
proxy_pass http://localhost:8081;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /v3{
proxy_pass http://localhost:8082;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#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 /data/nginx/html;
}
}
这样我们就配置完成了。只需要重新重启我们的nginx即可,然后我们就可以通过localhost/v1/*访问我们的项目一的项目,因为我们的nginx监听到我们的80,并且也匹配到我们的/v1,所以就会转发到我们的8080上,其他也是类似的,而这样我们就通过值暴露一个端口给外部而达到多个项目的同时部署。