nginx配置实现代理服务

场景
在学校内网服务器上跑了一个网页,我们需要在宿舍或者家里访问这个内部网页;该项目是部署在内网的,所以在内网直接访问不会有问题,而从外网访问当然也就访问不到;因此,我用nginx实现代理服务。

学校实验室服务器(SchoolServer)
IP:192.168.51.10
页面 url:192.168.51.10:80/dashboard
我的外网服务器(MyServer)##  阿里云云主机(公网IP)
IP:49.234.2XX.2XX
站点域名:www.xxx.com(必须是备过案的)

实现原理
通过 Nginx 实现端口转发,最后可以通过公网服务器的域名+端口号访问学校内网服务器的页面。即访问www.xxx.com/dashboard 时,将得到192.168.51.10:80/dashboard(学校内网)的页面。

内网服务器(SchoolServer)

[root@schoolserver ~]# ssh -N -f -R 28000:127.0.0.1:80 root@49.234.2XX.2XX
root@49.234.2XX.2XX's password:(输入MyServer的root用户密码)
注释:这句命令的意思是,将 MyServer 的28000端口转发至 SchoolServer 80 端口,最后是 MyServer 用户名和 IP。

通过ps aux | grep ssh  查看是否运行
[root@schoolserver ~]# ps aux | grep ssh
root       1438  0.0  0.0  82544  2108 ?        Ss   Oct26   0:00 /usr/sbin/sshd -D
root       4560  0.1  0.0 138832  2744 ?        Ss   Oct26   1:28 sshd: root@pts/0
root       4564  0.0  0.0 138700  2180 ?        Ss   Oct26   0:00 sshd: root@notty
root       4593  0.0  0.0  52684  1024 ?        Ss   Oct26   0:00 /usr/libexec/openssh/sftp-server
root     122947  0.0  0.0  80420  1108 ?        Ss   17:50   0:00 ssh -N -f -R 28000:127.0.0.1:80 root@49.234.2XX.2XX
root     123602  0.0  0.0 112648   948 pts/0    S+   17:52   0:00 grep --color=auto ssh

在内网服务器(SchoolServer)操作完成之后,可以在(MyServer)查看到28000端口

[root@myserver ~]# lsof -i:28000
COMMAND PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    362 root    8u  IPv4 758582      0t0  TCP localhost:nxlmd (LISTEN)

接下来安装Nginx,实现代理服务;可以直接用yum安装,但是必须配epel源;yum安装nginx其默认安装路径在/etc/nginx。

[root@myserver ~]# yum install -y nginx
[root@myserver ~]# cat /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;
    upstream dashboard {
        server 127.0.0.1:28000;
    }
    server {
        listen       80;
        server_name  www.xxx.com;   ## 自己的域名
        location / {
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_redirect off;
                proxy_pass http://dashboard;
        }
        access_log  /var/log/nginx/access/dashboard.log; 
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
        }
   }
}
[root@myserver ~]# systemctl start nginx
[root@myserver ~]# systemctl enable nginx

下面通过浏览器访问我们的域名:http://www.xxx.com/dashboard
在这里插入图片描述

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页