nginx 做反向代理,在实际的生产环境中有很重要的用途,特别是下载nodejs和go等服务器端语言,能独自开启端口监听服务,但是往往希望用nginx来代理这些端口,映射到 80服务器上,提供给用户通过http访问。
这里记录一次 nginx 反向代理一会 react 开发框架nextjs 的3000端口提供访问服务的设置:
server {
listen 80;
server_name *.d.com;
location / {
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:3000;
}
}
==很多资料上只写这一段,它真的可以实现代理端口的请求。但是它没法代理静态资源文件;
所以还需要增加下面这一段到server里面
location ~ .* {
proxy_pass http://127.0.0.1:3000
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
完整的代码是:
server {
listen 80;
server_name *.d.com;
location / {
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:3000;
}
location ~ .* {
proxy_pass http://127.0.0.1:3000
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
需要把静态文件也添加反向代理设置。
原因分析:
反向代理的路径下找不到文件,这里需要单独指定js和css文件的访问路径。
好了,本文全部介绍完毕,感谢您的阅读,希望能帮助到您!