这是我第一次玩nginx。我有两台快速服务器在我的localhost中运行在端口3001和3002中。哪个运行正常。 我正在使用ubuntu这些是我为nginx采取的步骤。
首先我使用了sudo apt-get install nginx
删除已启用网站和网站可用 sudo rm的默认文件 -f default
在网站中创建默认文件 - 我有这些代码的地方(目前只是尝试在端口3001中运行一台服务器。) sudo vi default
服务器
{
听80;
地点 /
{
proxy_pass“http://192.168.100.5:3001”;
}
}
符号链接默认来自站点 - 可用于启用站点: sudo ln -s / etc / nginx / sites-available / default / etc / nginx / sites-enabled / default
启动nginx sudo /etc/init.d/nginx start
我得到的是欢迎来到nginx如果您看到此页面,则nginx Web服务器已成功安装并正常运行。需要进一步配置。
我也尝试在已启用网站的
中使用此配置上游项目{ 服务器http://localhost:3001; } 服务器{ 听80; } }
但它产生相同的结果。请任何指导都会有所帮助。谢谢。
答案 0 :(得分:1)
尝试将proxy_pass
与本地主机一起使用,不加引号。
假设您希望端口3001
上的应用程序作为您的网站,您需要将其配置为:
location / {
proxy_pass http://localhost:3001/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
此代码必须位于server
文件的default
块中。
它会将所有流量从位置/
(您的网络根目录)传递到端口3001
。
完整的示例如下所示:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name example.com;
location / {
proxy_pass http://localhost:3001/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
说明:
proxy_pass http://localhost:3001/;
这会将所有流量传递到port 3001
。
proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;
这将传递信息,例如调用代理服务器的IP。
proxy_set_header X-Forwarded-Proto $ scheme;
这将转发请求的已使用的sheme /协议信息。
答案 1 :(得分:1)
主要是您的配置文件问题。 请参阅下面的示例,在3000和3001端口中运行的不同快速应用程序。这是配置文件在我的nginx配置文件中的样子
server {
listen 0.0.0.0:80;
server_name stage.chat.in www.stage.chat.in;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $proxy_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:3000;
}
}
server {
listen 0.0.0.0:80;
server_name api.chat.in www.api.chat.in;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $proxy_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:3002;
}
}