Если вы действительно хотите перенаправить (301 или 302) ваш веб-трафик
Вы создаете секцию server {}
, прослушивающую порт 3000, и просто перенаправляете ее в другую секцию server {}
, которая прослушивает порт80. В каждом разделе server {}
установите свойство listen
соответствующим образом.Я предполагаю, что вы пытаетесь обработать перенаправление внутри одного server
раздела, и согласно этой странице директива listen
применяется к server
context
Если вы хотите использоватьnginx как прокси
Тогда вам нужна директива proxy_pass.Вот пример конфигурации, извлеченной из конфигурации. Я должен использовать nginx в качестве прокси для моего приложения rails (thin).В основном мое приложение работает локально (но оно также будет работать на удаленном хосте) через порт 3200, и соответствующая часть конфигурации nginx выглядит следующим образом:
upstream my-app-cluster
{
server localhost:3200;
}
server
{
listen 80;
server_name mydomain.com;
root /root/to/public/folder;
access_log /my/app/log/folder/myapp.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (-f $request_filename/index.html) {
rewrite (.*) $1/index.html break;
}
if (-f $request_filename.html) {
rewrite (.*) $1.html break;
}
if (!-f $request_filename) {
proxy_pass http://my-app-cluster;
break;
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}