<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Sorry this is a bit long:<div><br></div><div>On Debian Stretch 9.8, fresh install.   I want to setup nginx as a load balancer to just one node at this time just to play with it and understand it.</div><div><br></div><div>I installed the apt package nginx-full, which I assume will have all there.</div><div><br></div><div>So I slightly modified nginx.conf, where I removed the part about sites-available and only included the one loadbalance.conf.</div><div><br></div><div><font face="monospace, monospace">nginx.conf</font></div><div><div><font face="monospace, monospace">user www-data;</font></div><div><font face="monospace, monospace">worker_processes auto;</font></div><div><font face="monospace, monospace">pid /run/nginx.pid;</font></div><div><font face="monospace, monospace">include /etc/nginx/modules-enabled/*.conf;</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">events {</font></div><div><font face="monospace, monospace">    worker_connections 768;</font></div><div><font face="monospace, monospace">    # multi_accept on;</font></div><div><font face="monospace, monospace">}</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">http {</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    ##</font></div><div><font face="monospace, monospace">    # Basic Settings</font></div><div><font face="monospace, monospace">    ##</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    sendfile on;</font></div><div><font face="monospace, monospace">    tcp_nopush on;</font></div><div><font face="monospace, monospace">    tcp_nodelay on;</font></div><div><font face="monospace, monospace">    keepalive_timeout 65;</font></div><div><font face="monospace, monospace">    types_hash_max_size 2048;</font></div><div><font face="monospace, monospace">    # server_tokens off;</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    # server_names_hash_bucket_size 64;</font></div><div><font face="monospace, monospace">    # server_name_in_redirect off;</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    include /etc/nginx/mime.types;</font></div><div><font face="monospace, monospace">    default_type application/octet-stream;</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    ##</font></div><div><font face="monospace, monospace">    # SSL Settings</font></div></div><div><font face="monospace, monospace"><br></font></div><div><div><font face="monospace, monospace">    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE</font></div><div><font face="monospace, monospace">    ssl_prefer_server_ciphers on;</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    ##</font></div><div><font face="monospace, monospace">    # Logging Settings</font></div><div><font face="monospace, monospace">    ##</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    access_log /var/log/nginx/access.log;</font></div><div><font face="monospace, monospace">    error_log /var/log/nginx/error.log debug;</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    ##</font></div><div><font face="monospace, monospace">    # Gzip Settings</font></div><div><font face="monospace, monospace">    ##</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    gzip on;</font></div><div><font face="monospace, monospace">    gzip_disable "msie6";</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    # gzip_vary on;</font></div><div><font face="monospace, monospace">    # gzip_proxied any;</font></div><div><font face="monospace, monospace">    # gzip_comp_level 6;</font></div><div><font face="monospace, monospace">    # gzip_buffers 16 8k;</font></div><div><font face="monospace, monospace">    # gzip_http_version 1.1;</font></div><div><font face="monospace, monospace">    # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xm</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    ##</font></div><div><font face="monospace, monospace">    # Virtual Host Configs</font></div><div><font face="monospace, monospace">    ##</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    include /etc/nginx/conf.d/loadbalance.conf;</font></div><div><font face="monospace, monospace">}</font></div></div><div><br></div><div>Here is</div><div>/etc/nginx/conf.d/loadbalance.conf</div><div><br></div><div><div><font face="monospace, monospace">upstream learngigs {</font></div><div><font face="monospace, monospace">    server 192.168.1.250;</font></div><div><font face="monospace, monospace">}</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">server {</font></div><div><font face="monospace, monospace">    server_name <a href="http://learngigs.com">learngigs.com</a> <a href="http://www.learngigs.com">www.learngigs.com</a></font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    listen 443;</font></div><div><font face="monospace, monospace">    listen [::]:443;</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    ssl on;</font></div><div><font face="monospace, monospace">    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE</font></div><div><font face="monospace, monospace">    ssl_prefer_server_ciphers on;</font></div><div><font face="monospace, monospace">    ssl_certificate /etc/letsencrypt/live/<a href="http://learngigs.com/fullchain.pem">learngigs.com/fullchain.pem</a>;</font></div><div><font face="monospace, monospace">    ssl_certificate_key /etc/letsencrypt/live/<a href="http://learngigs.com/privkey.pem">learngigs.com/privkey.pem</a>;</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    access_log /var/log/nginx/loadbalance.access.log;</font></div><div><font face="monospace, monospace">    error_log /var/log/nginx/loadbalance.error.log debug;</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    location / {</font></div><div><font face="monospace, monospace">        proxy_pass <a href="http://learngigs/">http://learngigs/</a>;</font></div><div><font face="monospace, monospace">    }</font></div><div><font face="monospace, monospace">}</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">server {</font></div><div><font face="monospace, monospace">    listen 80 default_server;</font></div><div><font face="monospace, monospace">    listen [::]:80 default_server;</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    server_name _;</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    return 301 <a href="https://learngigs.com">https://learngigs.com</a>;</font></div><div><font face="monospace, monospace">}</font></div></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace"><div>root@loadbalance01:/etc/nginx# nginx -t</div><div>nginx: the configuration file /etc/nginx/nginx.conf syntax is ok</div><div>nginx: configuration file /etc/nginx/nginx.conf test is successful</div></font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">As you can see there are no syntax errors.</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace"><div>root@loadbalance01:/etc/nginx# netstat -anop | grep nginx</div><div>tcp        0      0 <a href="http://0.0.0.0:80">0.0.0.0:80</a>              0.0.0.0:*               LISTEN      1322/nginx: master   off (0.00/0/0)</div><div>tcp6       0      0 :::80                   :::*                    LISTEN      1322/nginx: master   off (0.00/0/0)</div><div>tcp6       0      0 :::443                  :::*                    LISTEN      1322/nginx: master   off (0.00/0/0)</div><div>unix  3      [ ]         STREAM     CONNECTED     20723    1322/nginx: master</div><div>unix  3      [ ]         STREAM     CONNECTED     20724    1322/nginx: master</div><div><br></div><div>From this you can see it will not bind to <a href="http://0.0.0.0:443">0.0.0.0:443</a>, it was able to and did for 80, and did 443 on ipv6, but not ipv4.</div><div><br></div><div>There is nothing sitting on 443:</div><div><br></div><div><div>root@loadbalance01:/etc/nginx# netstat -anop | grep 443</div><div>tcp6       0      0 :::443                  :::*                    LISTEN      1322/nginx: master   off (0.00/0/0)</div></div><div><br></div><div>So there is no bind error.</div><div><br></div><div>Looking at the logs:</div><div><br></div><div><div>root@loadbalance01:/var/log/nginx# ls -ld *</div><div>-rw-r--r-- 1 root root   0 Apr 25 14:20 access.log</div><div>-rw-r--r-- 1 root root 265 Apr 25 14:20 error.log</div><div>-rw-r--r-- 1 root root   0 Apr 25 14:20 loadbalance.access.log</div><div>-rw-r--r-- 1 root root  78 Apr 25 14:20 loadbalance.error.log</div></div><div><br></div><div>As you can see it created loadbalance.error.log, so it understood my config for that.</div><div><br></div><div><div>root@loadbalance01:/var/log/nginx# cat loadbalance.error.log</div><div>2019/04/25 14:20:09 [debug] 1368#1368: epoll add event: fd:8 op:1 ev:00002001</div><div>root@loadbalance01:/var/log/nginx# cat error.log</div><div>2019/04/25 14:20:09 [info] 1363#1363: Using 32768KiB of shared memory for nchan in /etc/nginx/nginx.conf:63</div><div>2019/04/25 14:20:09 [debug] 1368#1368: epoll add event: fd:9 op:1 ev:00002001</div><div>2019/04/25 14:20:09 [debug] 1368#1368: epoll add event: fd:10 op:1 ev:00002001</div></div><div><br></div><div>And there is nothing interesting in the logs.</div><div><br></div><div>I put this on serverfault and someone suggested that listening on a port on ipv6 would also work for ipv4, but if I do a telnet myip 443 from another server it says refused connection.</div><div><br></div><div>There is nothing of note in syslog:</div><div><br></div><div><div>Apr 25 14:20:03 loadbalance01 systemd[1]: Stopping A high performance web server and a reverse proxy server...</div><div>Apr 25 14:20:03 loadbalance01 systemd[1]: Stopped A high performance web server and a reverse proxy server.</div><div>Apr 25 14:20:09 loadbalance01 systemd[1]: Starting A high performance web server and a reverse proxy server...</div><div>Apr 25 14:20:09 loadbalance01 systemd[1]: nginx.service: Failed to read PID from file /run/nginx.pid: Invalid argument</div><div>Apr 25 14:20:09 loadbalance01 systemd[1]: Started A high performance web server and a reverse proxy server.</div></div><div><br></div><div>I tried to strace it, and it does not even try to bind to 443 on ipv4, it is almost like it is compiled to ignore port 443 on ipv4.</div><div><br></div><div>Can someone help me?</div><div><br></div><div>Thank you</div><div><br></div><div>Julian Brown</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace"><br></font></div><div><br></div><div><br></div><div><br></div></div></div></div></div></div></div></div></div></div></div>