我正在尝试使用nginx运行一个覆盆子pi的网站。我已经端口转发到端口8080,并允许我的防火墙中的端口。我可以访问我的局域网上的网站没问题,但我尝试从网络外的计算机访问该网站时收到错误消息。 isup.me说我的网站已启动,但是任何代理服务器都说不允许从我的网站查看网站。我的nginx.conf文件如下:
opacity
}
这是我的$ sites-available / thomaswurdinger.com配置(软链接到$ sites-enabled / thomaswurdinger.com):
user www-data;
worker_processes 2;
pid /var/run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
client_header_timeout 10;
client_body_timeout 10;
keepalive_timeout 10 10;
send_timeout 10;
types_hash_max_size 2048;
server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
gzip_min_length 1100;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css applciation/jsonapplication/xjavascript
text/xml applcation/xml application/rss+xml text/javascript
images/svg+xml application/x-font-ttf font/opentype application/vnd.ms-
fontobject;
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
我的域名是使用namecheap注册的,它使用重定向将流量转发到192.168.0.7:8080。请帮忙。
答案 0 :(得分:0)
如果您确定可以从局域网内访问您的站点,则问题可能与您的路由器/防火墙设置有关,以代理您的RaspberryPi服务器。
你应该:
192.168.0.x的IP地址只能在局域网内使用。
从外面,使用:
假设你的Rpi正在运行像“Rasbian”这样的基于Debian的操作系统,你的/etc/network/interfaces
应该包含Rpi服务器的静态IP:
iface eth0 inet static
address 192.168.0.7
netmask 255.255.255.0
这就是您需要确保服务器在LAN内部具有静态IP。它应该可以从局域网内部访问。
但请注意,192.168.x.x范围的地址仅用于私有内部网络。有关详细信息,请参阅维基百科上的以下文章:Private network。从您的LAN可以访问它们。
要允许访问您的LAN服务器(Rpi服务器为192.168.0.7),您应该配置路由器/防火墙以允许从WAN进入LAN的请求:
WAN (Internet) -> request -> router/firewall -> redirect to 192.168.0.7
如何配置您的路由器/防火墙取决于您拥有的设备 - 它可能是来自您的ISP,Apple Extreme或重型Cisco / HP路由器等的小型调制解调器/路由器。通常您可以配置您的路由器(也可用作防火墙)使用某种基于Web的界面。
您应该确保有一个防火墙规则,说明进入目标端口 8080 的 TCP 请求被重定向到 192.168.0.7 (这是你的RaspberryPi)。
假设您拥有静态WAN IP地址 - 例如11.22.33.44
- 您应该将您的域名映射到注册商DNS记录中的IP。它应该是这样的(这只是一个示例域和IP - 替换你的真实域):
yourdomain.com. 1800 IN A 11.22.33.44
www.yourdomain.com. 1800 IN A 11.22.33.44
(使用namecheap.com的基于Web的DNS主机记录仪表板来修改您的A记录。)
(如果您没有来自服务提供商的静态IP,您可能会运气不好。有些服务提供动态DNS,但我没有使用过。)
所有这些假设您的nginx设置正常运行。因此,您的设置问题并不在于nginx,而在于您的DNS和路由器/防火墙配置。