欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Nginx 配置 - 单域反向代理多个端口

最编程 2024-07-16 10:57:14
...

今天给新买的云服务器安装Nginx,用于部署自己的测试项目和博客,之前域名一直只绑定了一个端口用来跑博客项目,现在希望把后台接口也通过域名方式来访问,为此开始了一次Nginx的配置之旅。

一、安装Nginx

安装Nginx相对来说是非常简单的,运行下面两条命令即可。

sudo yum install epel-release
sudo yum install nginx

安装成功后,设置开机启动。

sudo systemctl enable nginx 

启动nginx,访问80端口,发现已经启动成功了。

sudo systemcyl start nginx

二、配置Nginx

2.1 nginx.conf

接下来,我们进入nginx目录下,找到nginx.conf文件开始配置;这里我把nginx.conf文件中的server配置统统删除了,以后我们再配置新的server,只需要再conf.d文件夹中创建新的*.conf即可。

cd /etc/nginx
vim nginx.conf

配置如下:

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    include /etc/nginx/conf.d/*.conf;   # 统一管理新增server配置等

}

2.2 main.conf

接下来,我们需要配置一个server用于端口服务的反向代理,进入conf.d文件夹新建一个main.conf。

cd /etc/nginx/conf.d
touch main.conf

配置main.conf如下:

server {
  listen    80 default_server;
  listen    [::]:80 default_server;
  server_name   jotyy.top;

  location / {
    proxy_pass  http://127.0.0.1:8999;  #端口1:用于博客主站访问
    proxy_read_timeout  300;
    proxy_connect_timeout   300;
    proxy_redirect  off;

    proxy_set_header    X-Forwarded-Proto $scheme;
    proxy_set_header    Host          $http_host;
    proxy_set_header    X-Real-IP     $remote_addr;
  }

  location /api/ {
    proxy_pass  http://127.0.0.1:8666/; #端口2:用于接口访问,这里一定要带上末尾的'/'
    proxy_read_timeout  300;
    proxy_connect_timeout   300;
    proxy_redirect  off;

    proxy_set_header    X-Forwarded-Proto $scheme;
    proxy_set_header    Host          $http_host;
    proxy_set_header    X-Real-IP     $remote_addr;
  }
  
  error_page 500 502 503 504 /50x.html; 
  location = /50x.html {
    root /usr/share/nginx/html;
  }
}

接下来,我们通过http://jotyy.top/api/就可以访问到接口啦。

推荐阅读