微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

部署本地nginx服务器到公共ubuntu 16.04

我正在尝试将我的本地Nginx服务器部署到公共场所。 Nginx服务器作为我的节点快递应用程序反向代理运行,该应用程序也在端口3000本地运行。 因此,我创build了一个从/ etc / Nginx / sites-available / express到/ etc / Nginx / sites-enabled / express的符号链接,所以我的configuration文件名为express,看起来像这样。

/ etc / Nginx / sites-enabled / express

upstream express_servers{ server 127.0.0.1:3000; } server { listen 80; location / { proxy_pass http://express_servers; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }

我已经从启用网站的文件夹中删除文件,我没有改变我的Nginx.conf文件,看起来像这样

/ etc / Nginx / Nginx.conf

反向代理HTTP / 2从h2到h2c

提供io的Nginx Socket.io SSL未定义错误

如何使用ProxyPass通过Express提供静态文件

无法在nodejs和Nginx中提供静态文件

apache tomcat + apache httpd + mod_proxy + mod_rewrite +表单发布数据

user www-data; worker_processes auto; pid /run/Nginx.pid; events { worker_connections 768; # multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; 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; ## # SSL Settings ## ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3,ref: POODLE ssl_prefer_server_ciphers on; ## # Logging Settings ## access_log /var/log/Nginx/access.log; error_log /var/log/Nginx/error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; # 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 application/json application/javascript text/xml application/xml application/xml+RSS text/javascript; ## # Virtual Host Configs ## include /etc/Nginx/conf.d/*.conf; include /etc/Nginx/sites-enabled/*; } #mail { # # See sample authentication script at: # # http://wiki.Nginx.org/ImapAuthenticateWithApachePHPScript # # # auth_http localhost/auth.PHP; # # pop3_capabilities "TOP" "USER"; # # imap_capabilities "IMAP4rev1" "UIdplUS"; # # server { # listen localhost:110; # protocol pop3; # proxy on; # } # # server { # listen localhost:143; # protocol imap; # proxy on; # } #}

我也用ufw(简单的防火墙)改变了我的防火墙设置,允许http访问(特别是Nginx)。 我的ufw状态如下所示:

Status: active Logging: on (low) Default: deny (incoming),allow (outgoing),disabled (routed) New profiles: skip To Action From -- ------ ---- 80/tcp (Nginx HTTP) ALLOW IN Anywhere 80 ALLOW IN Anywhere 80/tcp (Nginx HTTP (v6)) ALLOW IN Anywhere (v6) 80 (v6) ALLOW IN Anywhere (v6)

当我用wrk或loadtest(npm)运行负载testing时,一切似乎都正常工作。 例如

wrk -t12 -c50 -d5s http://192.168.178.57/getCats/eng

所以在本地我可以访问Nginx服务器,但是当我尝试从公共服务器(3G / 4G)访问服务器时,我无法访问服务器。 我错过了什么?

编辑:我想通过http:// PUBLIC_IP_ADDR / getCats / eng访问服务,而不是本地地址。

Magento使用Nginx proxy_pass存储在子文件夹中

上游超时错误Nginx + socket.io +代理+ ssl

与反向代理的Apache基本authentication问题

针对Docker容器的Nginx反向代理

Nginx反向代理到另一个服务于静态文件Nginx服务器

你的Nginx配置看起来非常好。

为了能够从外部访问您的服务器,您需要从您的ISP公共静态IP。 此外,ISP不应该阻止传入的流量到端口80和443(如果你决定使用https)。

那么你可能有这样的局域网:

ISP <---> Router <---> server ^ | ----> your other devices

在这种情况下,公共IP将被分配给路由器,所有其他设备将具有本地私有ips,如192.168.xx/24 / 10.xxx/8 / 10.xxx/8 / 172.16.0.0/20

您需要配置从路由器到服务器的私有IP的端口转发。 根据路由器的供应商,这个功能可能被称为virtual server ,通常在WAN配置附近。 将其设置为将TCP端口80转发到服务器本地端口80,对于443则是相同的。

你也可能需要配置服务器到静态IP,以便本地IP地址不会改变

我认为你必须把

listen *:80

在你的文件/ etc / Nginx / sites-enabled / express中

Nginx听文档

我认为这是不是现在听你的ISP公共IP的请求。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐