将 .htaccess 重写为 Nginx 配置格式,以将不同的 URL 代理到不同的端口
Rewrite .htaccess to Nginx configuration format to proxy different URLs to different ports
如何在 nginx 中使用以下 htaccess 规则?
因此,如果用户访问 http://lovelythings.buzz/api
或 img
,则应使用本地端口 8080。
但是当尝试访问其他路由时http://lovelythings.buzz
它将在端口 3000 或 3001 上被代理
我已经在 Apache2 服务器的 .htaccess 上实现了这一点。
但我在其他服务器上安装了 Nginx,但 Nginx 不支持 .htaccess
。
以下是 .htaccess,我正在尝试 运行 在 Nginx 上。
DirectoryIndex
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} dev.farrwest.com
RewriteRule ^api(.*)$ http://localhost:8080/api [P,L]
RewriteRule ^img/(.*)$ http://localhost:8080/img/ [P,L]
RewriteRule ^(.*)?$ http://localhost:3001/ [P,L]
经过进一步搜索。
以下配置对我来说工作正常。
server {
listen 80;
listen [::]:80;
server_name lovelythings.buzz www.lovelythings.buzz;
#root /var/www/html;
index index.html index.htm index.nginx-debian.html;
location / {
proxy_pass http://localhost:3000/;
}
location /assets/ {
proxy_pass http://localhost:3000/assets/;
}
location /api/ {
proxy_pass http://localhost:8080/api/;
}
location /graphql {
proxy_pass http://localhost:8080/graphql;
}
location /img/ {
proxy_pass http://localhost:8080/img/;
}
}
如何在 nginx 中使用以下 htaccess 规则?
因此,如果用户访问 http://lovelythings.buzz/api
或 img
,则应使用本地端口 8080。
但是当尝试访问其他路由时http://lovelythings.buzz
它将在端口 3000 或 3001 上被代理
我已经在 Apache2 服务器的 .htaccess 上实现了这一点。
但我在其他服务器上安装了 Nginx,但 Nginx 不支持 .htaccess
。
以下是 .htaccess,我正在尝试 运行 在 Nginx 上。
DirectoryIndex
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} dev.farrwest.com
RewriteRule ^api(.*)$ http://localhost:8080/api [P,L]
RewriteRule ^img/(.*)$ http://localhost:8080/img/ [P,L]
RewriteRule ^(.*)?$ http://localhost:3001/ [P,L]
经过进一步搜索。
以下配置对我来说工作正常。
server {
listen 80;
listen [::]:80;
server_name lovelythings.buzz www.lovelythings.buzz;
#root /var/www/html;
index index.html index.htm index.nginx-debian.html;
location / {
proxy_pass http://localhost:3000/;
}
location /assets/ {
proxy_pass http://localhost:3000/assets/;
}
location /api/ {
proxy_pass http://localhost:8080/api/;
}
location /graphql {
proxy_pass http://localhost:8080/graphql;
}
location /img/ {
proxy_pass http://localhost:8080/img/;
}
}