NGINX具有反向代理的多个服务器块

NGINX具有反向代理的多个服务器块,第1张

NGINX具有反向代理的多个服务器

根据您对要执行的 *** 作的描述,我认为您的nginx.conf应该看起来像这样:

http {    include       mime.types;    default_type  application/octet-stream;    server {        listen 80;        server_name site.example.com;        # pass all requests to service listening on port 8080        location / { include /usr/local/nginx/conf/proxy.conf; proxy_pass http://localhost:8080; proxy_redirect http://localhost:8080/ http://$host;        }    }    server {        listen 80;        server_name wiki.example.com;        root /path/to/your/www/wiki;        index index.html index.htm index.php;        location / { try_files $uri @backend;        }        location @backend { rewrite ^ /index.php?title=$request_uri last;        }        # proxy to php-fpm listening on port 9000        location ~ .php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param script_FILENAME $document_root$fastcgi_script_name; include fastcgi_params;        }        # your other rules here...        error_page   500 502 503 504  /50x.html;        location = /50x.html { root html;        }    }    server {        listen 80 default_server;        server_name _;        access_log off;        return 301 $scheme://site.example.com$request_uri;    }}

在第一个服务器块中,nginx将在端口80上侦听与“ site.example.com”匹配的请求,并代理您在8080(tomcat)上运行的任何服务。

在第二个服务器块中,nginx将在端口80上侦听与“ wiki.example.com”匹配的请求,并使用php(或者大概是php-
fpm)在端口9000上侦听它们。

最终服务器块是您的默认服务器块。它还在端口80上侦听,并作为一个包包-与“ site.example.com”或“
wiki.example.com”不匹配的内容都将在此处结束,在示例中,它仅重定向到“ site.example”。 com。”

附加信息

后端服务代理上方的位置块包含一个include语句,该语句在nginx conf目录(/ usr / local / nginx / conf)中加载“
proxy.conf”。这是我用来指定代理参数的示例“ proxy.conf”配置集,如果不使用单独的配置文件,则可以内联指定这些配置:

proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;client_max_body_size 32m;client_body_buffer_size 128k;proxy_connect_timeout 90;proxy_send_timeout 90;proxy_read_timeout 90;proxy_buffers 32 4k;

编辑:

更新了“ wiki.example.com”的服务器块代码示例。为了清楚起见,我建议您将
目录指定为绝对路径,以便您和nginx确切知道在文件系统上的哪里可以找到它。另外,在更新的代码中, @backend
块将重定向并将nginx找不到匹配项的所有请求传递给要处理的媒体wiki index.php文件。这也允许您使用干净的URL,例如“
wiki.example.com/Main_Page”(并且将被重写为“
wiki.example.com/index.php?title=Main_Page”)。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5012519.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-14

发表评论

登录后才能评论

评论列表(0条)

    保存