Nginx转发给Tomcat页面去掉端口号

  1. 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。  
  2. 找到conf/nginx.conf文件,编辑:    
  3. worker_processes  1;    
  4. events {  
  5.     worker_connections  1024;  
  6. http {  
  7.     include       mime.types;  
  8.     default_type  application/octet-stream;  
  9.     sendfile        on
  10.     keepalive_timeout  65; 
  11.     server {  
  12.         listen       80;  
  13.         server_name  127.0.0.1:8080;  
  14.   
  15.         location / {  
  16.             proxy_pass   http://127.0.0.1:8080;  
  17.         }   
  18.     } 
  19. }  
  20. server下的结点:  listen:监听80端口  server_name:转发到哪个地址  proxy_pass:代理到哪个地址    
  21. nginx常用命令(要进入到nginx的目录):  开启:start nginx  重启:nginx -s reload  
  22. 作用:  把网站端口改成非80的端口  然后通过nginx转发到域名上  这样就不用在域名后面加端口才能访问  

页面都交给 nginx转发给 tomcat,这样能访问网页http://192.168.1.3/myweb/net,但里面的超链接全是http://192.168.1.3:8080/myweb/t.html;页面上的链接全部变成了“http://127.0.0.1:8080/myweb/t.html

点击链接后,又直接访问tomcat了,
怎么去掉8080? 并变成请求“www.xxx.cn/myweb/t.html" ?(注意,不准www.xxx.cn:8080/myweb/t.html  这会导致页面跨域--端口号不一样)

方法是网站页面中直接读取了服务器ip和端口号。在网站服务端不能正确获取到port.或者做重定向的时候地址总是丢掉端口(port)。

最简单解决方案,修改Nginx的配置文件:

    server {
        listen       80;
        server_name  www.xxx.cn;

        server_name_in_redirect off;
        proxy_set_header Host $host:$server_port;
        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;

    location / {
         proxy_pass http://***********:8080/;
        }
    }


总结就是修改配置文件nginx.conf配置文件,属性 server_name 和location 

猜你喜欢

转载自blog.csdn.net/xiaofanren1111/article/details/79694279