Nginx部署项目以及反向代理

443 阅读2分钟

Nginx部署项目以及反向代理

服务器安装Nginx

  • Ubuntu
sudo apt install nginx
  • CentOS
sudo yum install -y nginx

创建项目目录

目录可以根据实际情况创建,比如在根目录下创建/www/nginx。

mkdir /www
cd /www && mkdir nginx

部署项目

  1. 在/etc/nginx找到nginx.conf配置文件,(根据安装nginx服务器的方式有所不同,比如使用宝塔面板一键式安装,配置文件在/www/server/nginx/conf下)。

    cd /etc/nginx && ls
    

image-20220611205602121.png

  1. 编辑nginx.conf,命令行使用sudo vim nginx.conf。(图形化界面可使用gedit命令,宝塔面板可直接双击文件打开编辑)

    sudo vim nginx.conf
    
    • 找到http{}所在位置。

image-20220611205927436.png - 在http{}内添加server{},配置如下:

```
        #配置服务监听  
        server{
                listen 8000; #监听端口
                server_name localhost; #域名或者Ip地址
​
                #部署项目
                location / {
                        index index.html; #访问域名默认界面
                        root /www/nginx/dist; #项目所在位置
                }
​
​
                error_page   500 502 503 504  /50x.html;
                location = /50x.html {
                        root   html;
                }
        }
```

3. 保存配置文件后退出,重启nginx服务器

```
sudo nginx -s reload && service nginx restart
```

4. 使用域名+端口号进行访问项目,如:http://localhost:8000

image-20220611210847526.png

反向代理访问项目

部署项目的时候,通常不会将端口号暴露给用户,而Nginx默认监听端口为80,这是一个公开的端口号,故我们需要通过80端口的访问反向代理到本地服务器的端口,从而保证服务器的安全。

  1. 同样对nginx.conf配置文件进行配置,添加一个监听80的server{},配置如下:

    server
        {
            listen 80; #监听80端口
            server_name guide.oldblack.com.cn; #服务器绑定的域名或者Ip地址
            location / {
                proxy_pass http://127.0.0.1:8000; #反向代理到本地的8000端口
                index  index.html index.htm;
            }
        }
    

    如果有多个nginx服务器(可以是其他的,如tomcat),可以对监听80端口的nginx服务器A配置以上内容,部署项目的服务器B为本地服务器,通过A的反向代理将监听转交给B。

  2. 保存配置文件后退出,重启nginx服务器。

    sudo nginx -s reload && service nginx restart
    
  3. 通过域名guide.oldblack.com.cn访问项目

image-20220611212049624.png