我正在尝试运行极简主义的反向代理,并提出以下内容:
events {
worker_connections 4096;
}
http {
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:3000/;
}
}
}
Run Code Online (Sandbox Code Playgroud)
`
但是,当我访问此服务器时,我得到标准的"欢迎来到nginx页面",而不是来自在端口3000上运行的服务器的响应.
如果我ssh到机器并运行curl http://127.0.0.1:3000/,我得到了所需的结果(最终我在端口上运行该服务器80,它工作正常,所以我知道它与反向代理配置有关).
Vij*_*ati 33
我有完全相同的问题.我只是在我的nginx.conf文件中注释掉了一行:
include /etc/nginx/sites-enabled/*;
变成
#include /etc/nginx/sites-enabled/*;
Eze*_*aga 10
/根据我的经验,在末尾添加尾部斜杠可以解决问题。
从:
server {
listen 80;
server_name node_servers;
# reverse proxy to nodejs
location /developV4 {
proxy_pass http://127.0.0.1:8081;
}
}
Run Code Online (Sandbox Code Playgroud)
到:
server {
listen 80;
server_name node_servers;
# reverse proxy to nodejs
location /developV4/ {
proxy_pass http://127.0.0.1:8081/;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 9
通过答案解释Vijay的帖子,因为交换不会让我发表评论.
可能需要注释掉启用站点的目录,因为您使用的是标准的nginx.conf文件.您会注意到该行已经在http指令中.如果您使用的是标准配置,则需要在另一个http指令中重新定义http指令.您还可以将站点文件更新为仅具有服务器指令而不是http指令.
Standard-ish nginx.conf文件:
worker_processes 4;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
gzip on;
gzip_http_version 1.0;
gzip_comp_level 5;
gzip_proxied any;
gzip_vary off;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/rss+xml application/atom+xml text/javascript application/javascript application/json text/mathml;
gzip_min_length 1000;
gzip_disable "MSIE [1-6]\.";
server_names_hash_bucket_size 64;
types_hash_max_size 2048;
types_hash_bucket_size 64;
client_max_body_size 1024;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Run Code Online (Sandbox Code Playgroud)
启用站点内的示例兼容站点文件:
server {
server_name {server name};
listen 80;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
proxy_pass http://example.com:8080;
proxy_set_header Host $host;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 9
我尝试了上述所有答案,但没有任何效果,但经过一段时间的思考,我发现selinux被设置为强制,这导致了问题,一旦我将selinux设置为宽容,它就会按预期工作。
这是我的 nginx 配置:
location / {
proxy_pass http://127.0.0.1:8080;
}
Run Code Online (Sandbox Code Playgroud)
目前,selinux设置为强制执行,这是我得到的错误。
[root@vm1 ~]# getenforce
Enforcing
[root@vm1 ~]#
Run Code Online (Sandbox Code Playgroud)

一旦我将selinux设置为宽容,它就会按预期工作。
[root@vm1 ~]# setenforce 0
[root@vm1 ~]# getenforce
Permissive
[root@vm1 ~]#
Run Code Online (Sandbox Code Playgroud)

不要忘记将selinux的更改永久化,否则重启后将不起作用。
sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47266 次 |
| 最近记录: |