在连续数小时和数天试图让NGINX反向代理工作后,第一篇文章在这里发表。
我有多个子域名通过Namecheap服务指向端口80上的home,路由器/防火墙正在运行OpenWrt,OpenWrt指向端口80上的内部NGINX反向代理服务器(CentOS 7)。
本例的子域是dokuwiki。我叫Cheaptld。io和observium。我叫Cheaptld。木卫一
这是我的主要/etc/nginx。配置文件:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 80 default_server;
#listen [::]:80 default_server;
server_name _;
#root /usr/share/nginx/html;
# Load configuration files for the default server block.
#include /etc/nginx/default.d/*.conf;
#location / {
#}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
我在 /etc/nginx中创建了一个以前不存在的proxy_params文件:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
我在/etc/nginx/conf.d/中有两个子域,名为dokuwiki。形态和观察。形态:
upstream dokuwiki {
server 192.168.1.6:8180;
}
server {
listen 80;
server_name dokuwiki.namecheaptld.io;
access_log /var/log/nginx/dokuwiki.access.log main;
error_log /var/log/nginx/dokuwiki.error.log;
location / {
proxy_pass http://192.168.1.6:8180;
include /etc/nginx/proxy_params;
}
}
upstream observium {
server 192.168.1.8:80;
}
server {
listen 80;
server_name observium.namecheaptld.io
access_log /var/log/nginx/observium.access.log main;
error_log /var/log/nginx/observium.error.log;
location / {
proxy_pass http://192.168.1.8:80;
include /etc/nginx/proxy_params;
}
}
每当我尝试访问任何subdomain.namecheaptld.com时,我都会看到server_name块中定义的默认虚拟主机_或default_server。
在尝试了很多事情之后,我完全搞不懂为什么它不起作用,包括在代理过程定义的IP之后添加一个尾随/之后,并查看了/var/log/nginx/dokuwiki中的HTTP头。通道日志包括:
[22/Nov/2016:09:29:54 -0500] "GET / HTTP/1.1" 200 18273 "http://dokuwiki.namecheaptld.io/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36" "-"
[22/Nov/2016:09:29:54 -0500] "GET /lib/exe/indexer.php?id=start&1479824990 HTTP/1.1" 200 42 "http://MYEXTERNALIP/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36" "-"
[22/Nov/2016:09:29:57 -0500] "GET / HTTP/1.1" 200 18264 "http://observium.namecheaptld.io/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36" "-"
[22/Nov/2016:09:29:57 -0500] "GET /lib/exe/indexer.php?id=start&1479824994 HTTP/1.1" 200 42 "http://MYEXTERNALIP/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36" "-"
因此,当我让它在192.168.1.11:80上收听上述标题时,它似乎接受了dokuwiki的任一请求。我叫Cheaptld。io或observium。我叫Cheaptld。io并像处理dokuwiki一样处理请求。我叫Cheaptld。木卫一
我试图在server_name指令中使用显式通配符,但似乎没有帮助。
经过这么多的故障排除,我终于把它修好了!如果有人想把上面的代码用作模板,那就去想想上面的代码是完全正确的。
问题是我在名称堆中设置了URL重定向,而不是每个子域的A记录-
本文向大家介绍Nginx服务器的反向代理proxy_pass配置方法讲解,包括了Nginx服务器的反向代理proxy_pass配置方法讲解的使用技巧和注意事项,需要的朋友参考一下 就普通的反向代理来讲 Nginx的配置还是比较简单的,如: 或者可以 Apache2的反向代理的配置是: 然而,如果要配置一个相对复杂的反向代理 Nginx相对Apache2就要麻烦一些了 比如,将url中以/wap/开
使用nginx作为前端的反向代理将请求传递给应用是可行的。然而,只有nginx 1.4版本以上才支持WebSocket协议。下面是nginx代理HTTP和WebSocket请求的一个最基本的配置: server { listen 80; server_name _; location / { include proxy_params; pro
我有一个Nginx服务器托管一个web应用程序,当直接访问时工作正常。其配置如下 现在我必须从另一个Nginx服务器上服务这个应用程序,所以我设置了如下所示的反向代理 当我从server2访问应用程序时,我会得到如下错误,例如,当我访问HTTP:server2.com/app/css/app.css时 [error]6601#0:*1 open()“/data/www/app/css/app.cs
我正在运行一个Play框架应用程序,其中一个javascript需要连接到服务器上的websocket。服务器正在Play应用程序前面运行一个带有SSL的nginx代理,具有以下设置: javascript如下所示: connectChat方法看起来像这样: 当一切都在localhost上时,这工作得很好,但是现在服务器在云中,我在Chromium中得到以下错误: 与“wss://backend/
本文向大家介绍抛弃Nginx使用nodejs做反向代理服务器,包括了抛弃Nginx使用nodejs做反向代理服务器的使用技巧和注意事项,需要的朋友参考一下 时下不少场景,都是申请一个 VPS 主机来托管运行 Web 项目的,小弟我也不例外,购买了一个小型的 Win 03 VPS 使用着。在使用的过程中,面临一个问题,就是同一类型的服务端环境还好——但如果是一个 PHP、一个 ASP、 一个 JSP
本文向大家介绍nginx正向代理与反向代理详解,包括了nginx正向代理与反向代理详解的使用技巧和注意事项,需要的朋友参考一下 正向代理 就是假设有一个内网 内网有两台机器,这两台机器只有 a 可以上网 b 不能上网,但是 a 和 b 通过网络相连接 这时如果 b 想访问外网,就可以通过 a 来正向代理访问外网 正向代理就是在内网中模拟目标服务器,把内网中其它机器的请求 转发给外网中的真正的目标服