VirtualBox에서 Ubunts의 nginx로 역방향 프록시하여 HTML을 다시 작성하여 Hello World를 Crazy World로 만듭니다.

소개



VirtualBox에서 CentOS의 Apache에서 역방향 프록시하여 HTML을 다시 작성하여 Hello World를 Crazy World로 만듭니다. 의 Nginx 버전입니다.

했던 일



nginx로 시작한 http://localhost 에 node로 시작한 http://localhost:3000/


nginx 설정



sub_filter '대체 원본 문자' "대체 후 문자";

nginx.conf
location / {
            # root   html;
            # index  index.html index.htm;
            sub_filter_once off;
            sub_filter 'Hello' 'Crazy' ;
            sub_filter '</head>' "<script>alert('Crazy World')</script></head>" ;
            sub_filter 'nginx' 'Crazy' ;
            proxy_pass   http://127.0.0.1:3000;
        }

/etc/nginx/sites-available/default
location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            # try_files $uri $uri/ =404;
            sub_filter_once off;
            sub_filter 'Hello' 'Crazy' ;
            sub_filter '</head>' "<script>alert('Crazy World')</script></head>" ;
            sub_filter 'nginx' 'Crazy' ;
            proxy_pass   http://127.0.0.1:3000;
        }

node로 시작하는 HTML 준비



hello.html
<!DOCTYPE html>
<html>
    <head>
        <title>Hello World</title>
    </head>
    <body>
        <h1>Hello World</h1>
    </body>
</html>

hello.js
const http = require('http');
const fs = require('fs');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  // res.setHeader('Content-Type', 'text/plain');
  // res.end('Hello World!\n');
  fs.readFile('hello.html','UTF-8',
  (error, data)=>{
    res.writeHead(200,{'Content-Type':'text/html'});
    res.write(data);
    res.end();
  });
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

노드에서 시작하여 액세스 http://localhost:3000/


aoui@aoui-VirtualBox:/media/sf_reverse_proxy_nginx/nginx/public$ node hello.js
Server running at http://127.0.0.1:3000/



http://localhost에 액세스하면 Hello World가 Crazy World로 표시됩니다.





포트를 사용할 수 없을 때



다른 프로세스가 포트를 차지하고 nginx를 다시 시작할 수 없음

Docker로 하고 싶다



docker-compose에서 시작하고 nginx에서 리버스 프록시하여 HTML을 다시 작성하여 Hello World를 Crazy World로 만듭니다.

좋은 웹페이지 즐겨찾기