如何将流量从端口80转发到另一个端口

Ogo*_*eme -5 ubuntu iptables openerp odoo

我正在运行ubuntu,我想将端口80的请求转发到另一个端口,即8069,我正在运行我的openerp服务器...

我需要什么规则或bash脚本来解决这个问题?

Vik*_*ova 5

是的,你所指的是一个反向代理,你可以用Nginx轻松设置一个

首先,安装Nginx

sudo apt-get install nginx
Run Code Online (Sandbox Code Playgroud)

然后启动Nginx

sudo service nginx start
Run Code Online (Sandbox Code Playgroud)

访问服务器的IP地址,看看它是否正常工作.如果您看到"欢迎使用nginx!",那么您就走在了正确的轨道上

删除Nginx默认配置

sudo rm /etc/nginx/sites-enabled/default
Run Code Online (Sandbox Code Playgroud)

然后

sudo service nginx restart
Run Code Online (Sandbox Code Playgroud)

再次访问服务器的IP地址.这次,您应该看到"503 Bad Gateway".没关系,这就是你想要的

接下来,创建一个新文件

sudo nano /etc/nginx/conf.d/openerp.conf
Run Code Online (Sandbox Code Playgroud)

将其粘贴到其中,将"yourhostname.com"替换为您服务器的主机名(或者您将在此处投放的域名,如果您将其放在网络上)

#worker_processes  1;

#events {
#    worker_connections  1024;
#}

    server {
        listen  80;
        server_name yourhostname.com;
        location /socket.io {
            proxy_pass   http://127.0.0.1:8068;
            proxy_http_version 1.1;

            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            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 https;

            proxy_redirect off;
         }

        location / {
            proxy_pass   http://127.0.0.1:8069;
        }
    }
Run Code Online (Sandbox Code Playgroud)

重启Nginx

sudo service nginx restart
Run Code Online (Sandbox Code Playgroud)

现在再次访问服务器的IP地址.如果您获得OpenERP登录屏幕,那么您很高兴!如果没有,检查控制台是否有任何启动nginx,修复/etc/nginx/conf.d/openerp.conf的错误,然后再试一次