一.为什么要转发
- 80端口是为HTTP(HyperText Transport Protocol)即超文本传输协议开放的,此为上网冲浪使用次数 最多的协议,主要用于WWW传输信息的协议。可以通过HTTP地址(即常说的“网址”)加“:80”来访问网站,因为浏览网页服务默认的端口号都是80,因此只要输入网址即可,不需要输入端口号来进行访问。
- 8080端口为tomcat服务器默认配置端口,所以我想直接访问网址而不加端口来访问我tomcat下部署的项目时,必须进行端口转发。(即要达到这样一个效果:直接访问www.baidu.com访问的是8080端口,而不是其80端口)
二.nginx
将80端口转发到8080的具体步骤
-
在
nginx
的conf/nginx.conf
配置#gzip on; upstream webserver{ server ***.**.**.**:8080; #腾讯云外网地址+tomcat的8080端口 } #nginx监听http请求,即80端口,nginx内部将其转发到8080端口,代理的是服务器,所以是反向代理 server { listen 80; server_name www.*****.cn; #域名信息,即你的域名解析到的主机地址 #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; proxy_pass http://webserver; #代理指向上边upstream配置的变量 }
三. nginx
各种类型的端口转发
-
将域名转发到本地端口
server{ listen 80; server_name tomcat.baidu.com; index index.php index.html index.htm; location / { proxy_pass http://127.0.0.1:8080; # 转发规则 proxy_set_header Host $proxy_host; # 修改转发请求头,让8080端口的应用可以受到真实的请求 proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
这样访问 http://tomcat.baidu.com 时就会转发到本地的 8080 端口
-
将域名转发到另一个域名
server{ listen 80; server_name baidu.wode.com; index index.php index.html index.htm; location / { proxy_pass http://www.baidu.com; proxy_set_header Host $proxy_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
这样访问 http://baidu.wode.com 时就会转发到 http://www.baidu.com
-
本地一个端口转发到另一个端口或另一个域名
server{ listen 80; server_name 127.0.0.1; # 公网ip index index.php index.html index.htm; location / { proxy_pass http://127.0.0.1:8080; # 或 http://www.baidu.com proxy_set_header Host $proxy_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
这样访问 http://127.0.0.1 时就会转发到本地的 8080 端口或 http://www.baidu.com
windows关闭nginx
taskkill /f /t /im nginx.exe
将本地目录转发nginx
server
{
listen 999;
listen [::]:999;
server_name linglong.fun;
root /root/file;
}
端口配置ssl:访问/www/wwwroot/pert目录下的文件url为 ip:66/question/文件名;访问/www/wwwroot/andun/upload目录下的文件url为ip:66/文件名
server
{
listen 66 ssl;
listen [::]:66;
ssl_certificate /root/8505228_bsrs.top.pem;
ssl_certificate_key /root/8505228_bsrs.top.key;
server_name bsrs.top;
root /www/wwwroot/andun/upload;
location /question {
alias /www/wwwroot/pert;
}
}
重启nginx
/etc/rc.d/init.d/nginx restart