选择手机网站建设,电商网站用什么做最好,seo刷排名软件,收录网站是什么意思什么是端口转发 当我们在服务器上搭建一个图书以及一个电影的应用#xff0c;其中图书应用启动了 8001 端口#xff0c;电影应用启动了 8002 端口。此时如果我们可以通过 localhost:8001 //图书
localhost:8002 //电影 但我们一般访问应用的时候都是希望不加端口就访问… 什么是端口转发 当我们在服务器上搭建一个图书以及一个电影的应用其中图书应用启动了 8001 端口电影应用启动了 8002 端口。此时如果我们可以通过 localhost:8001 //图书
localhost:8002 //电影 但我们一般访问应用的时候都是希望不加端口就访问域名也即两个应用都通过 80 端口访问。但我们知道服务器上的一个端口只能被一个程序使用这时候如何该怎么办呢一个常用的方法是用 Nginx 进行端口转发。Nginx 的实现原理是用 Nginx 监听 80 端口当有 HTTP 请求到来时将 HTTP 请求的 HOST 等信息与其配置文件进行匹配并转发给对应的应用。例如当用户访问 book.douban.com 时Nginx 从配置文件中知道这个是图书应用的 HTTP 请求于是将此请求转发给 8001 端口的应用处理。当用户访问 movie.douban.com 时Nginx 从配置文件中知道这个是电影应用的 HTTP 请求于是将此请求转发给 8002 端口的应用处理。一个简单的 Nginx 配置文件部分如下面所示 #配置负载均衡池
#Demo1负载均衡池
upstream book_pool{server 127.0.0.1:8001;
}
#Demo2负载均衡池
upstream movie_pool{server 127.0.0.1:8002;
}#Demo1端口转发
server {listen 80;server_name book.chanshuyi.com;access_log logs/book.log;error_log logs/book.error;#将所有请求转发给demo_pool池的应用处理location / {proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://book_pool;}
}
#Demo2端口转发
server {listen 80;server_name movie.chanshuyi.com;access_log logs/movie.log;error_log logs/movie.error;#将所有请求转发给demo_pool池的应用处理location / {proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://movie_pool;}
} 上面这段配置实现了 1、当用户访问的域名是http://book.chanshuyi.com 时我们自动将其请求转发给端口号为 8001 的 Tomcat 应用处理。 2、当用户访问的域名是http://movie.chanshuyi.com 时我们自动将其请求转发给端口号为 8002 的 Tomcat 应用处理。 上面的这种技术实现就是端口转发。端口转发指的是由软件统一监听某个域名上的某个端口一般是80端口当访问服务器的域名和端口符合要求时就按照配置转发给指定的 Tomcat 服务器处理。我们常用的 Nginx 也有端口转发功能。 例如我的一个80端口转发到8080tomcat服务器的配置:(注意红字地方即修改的地方) linux下面修改的文件是: /etc/nginx/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;# Load dynamic modules. See /usr/share/nginx/README.dynamic.
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;# Load modular configuration files from the /etc/nginx/conf.d directory.# See http://nginx.org/en/docs/ngx_core_module.html#include# for more information.include /etc/nginx/conf.d/*.conf; upstream forwardport{server 127.0.0.1:8080;}server {listen 80 default_server;listen [::]:80 default_server; server_name qiaoliqiang.cnroot /usr/share/nginx/html;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf; location / {proxy_connect_timeout 3;proxy_send_timeout 30;proxy_read_timeout 30;proxy_pass http://forwardport;}error_page 404 /404.html;location /40x.html {}error_page 500 502 503 504 /50x.html;location /50x.html {}}# Settings for ap TLS enabled server.
#
# server {
# listen 443 ssl http2 default_server;
# listen [::]:443 ssl http2 default_server;
# server_name _;
# root /usr/share/nginx/html;
#
# ssl_certificate /etc/pki/nginx/server.crt;
# ssl_certificate_key /etc/pki/nginx/private/server.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 10m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
#
# # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
#
# location / {
# }
#
# error_page 404 /404.html;
# location /40x.html {
# }
#
# error_page 500 502 503 504 /50x.html;
# location /50x.html {
# }
# }} 当然也可以iptables进行转发:(80转到8080处理) iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 转载于:https://www.cnblogs.com/qlqwjy/p/9206937.html