使用nginx反向代理静态资源以及虚拟主机的实现

使用nginx反向代理静态资源以及虚拟主机的实现

1.安装Nginx

sudo apt update
sudo apt install nginx

2.启动Nginx

systemctl start nginx.service

3.Nginx配置

vim /etc/nginx/nginx.conf
worker_processes  1;

events {
    worker_connections  1024; #最大连接数
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80; #监听平台
        server_name  iot.chenyj.top; #虚拟主机名
        charset utf-8; #字符集

        location / { #根地址配置
            root   /opt/dist; #根地址对应路径
            try_files $uri $uri/ /index.html; #第一个$uri:当前请求的假如是127.0.0.1/index/a.png,那就指代index/a.png 第二个$uri/ 指当前文件夹(如127.0.0.1/index,省略index.html/index.htm)
            index  index.html index.htm;#请求该资源
        }

        location /prod-api/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://localhost:8080/;
                }

        location /api/v4/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://localhost:8081/api/v4/;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen       80;
        server_name  www.chenyj.top;
        charset utf-8;

        location / {
            root   /opt/web/main;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
            }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
      }
    server {
        listen       80;
        server_name  source.chenyj.top;
        charset utf-8;

        location / {
            root   /opt/web/source;
            }
    }
       server {
        listen 80;
        server_name blog.chenyj.top;
        location / {
            proxy_pass http://localhost:8088;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
       server {
        listen 80;
        server_name ali.chenyj.top;
        location / {
            proxy_pass http://localhost:8182;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
}

4.通过certbot配置ssl,实现https

apt install -y certbot   #安装certbot
apt install -y python3-certbot #安装python插件
apt install -y python3-certbot-nginx #安装certbot对nginx操作的插件
certbot --nginx  #配置域名访问
end
  • 作者:(联系作者)
  • 更新时间:2024-11-25 07:41
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 转载声明:如果是转载栈主转载的文章,请附上原文链接
  • 公众号转载:请在文末添加作者公众号二维码(公众号二维码见右边,欢迎关注)
  • 评论

    新增邮件回复功能,回复将会通过邮件形式提醒,请填写有效的邮件!