I have strange issue with nginx 1.9.12. I have 3 IP addresses as a
server
name that are alias IPs on a single Ubuntu server 15.10. Each servername
related to specific protocol:
http:
server {
listen 80;
server_name 192.168.1.161;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
root /usr/share/nginx/static;
index index.html;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
https:
server {
listen 443 ssl;
server_name 192.168.1.162;
As you see for those servers content is the same, and it is served well.
However, if I use webconsole of Firefox I am getting that https site is
a
http2 site and http2 site is http2. The same situation is in Internet
explorer.
However, could you please provide an example of “IP on the listen
directive”
I am accessing content from Firefox like https://192.168.1.162 for https
connection and https://192.168.1.163 for http2. Moreover, those ip also accessible by
http:// and served also well, but in my opinion it should gave some kind
of
error, because those server names do not have port 80 configured.
In short: If you have any http2 directives for a port in your
configuration, every connection on that port can use http2.
Im not sure if specifying the listen IP will help in this case, but its
worth a try. Modify your listen directives to “listen ip:port options;”,
for example for your last vhost: “listen 192.168.1.163:443 ssl http2;”
I tried this one:
http.conf:
listen 192.168.1.161:80;
https.conf:
listen 192.168.1.162:443 ssl;
http2.conf:
listen 192.168.1.163:443 ssl http2;
Looks like it solve issue especially when I do request for the first
time.
For the second time in IE I can get https in place of http2. Firefox
mostly
do not provide such behaviour. May it lay on certificate? I use the same
certificate for both HTTPS and HTTP2. And certificate was issued for
server
hostname not for vhost IP.
On Tuesday 15 March 2016 10:23:37 Roswebnet wrote:
listen 192.168.1.163:443 ssl http2;
Looks like it solve issue especially when I do request for the first time.
For the second time in IE I can get https in place of http2. Firefox mostly
do not provide such behaviour. May it lay on certificate? I use the same
certificate for both HTTPS and HTTP2. And certificate was issued for server
hostname not for vhost IP.
Your version of IE may not support HTTP/2 negotiation using NPN, or may
not
support HTTP/2 at all.
I am using W10Pro and IE 11.162.10586.0 Desktop version.
“The standardization effort was supported by Chrome, Opera, Firefox,
Internet Explorer 11, Safari, Amazon Silk and Edge browsers.[9] Most
major
browsers added HTTP/2 support by the end of 2015.”
In addition:
Of course, it is maybe some wrong implementation of Microsoft…
Still a bit strange.
P.S.: F12 tools of Chrome do not catch type of protocol. At least I
could
not find this functionality by default. Therefore, I use only IE and FF.
On Tuesday 15 March 2016 13:33:31 Roswebnet wrote:
root@LIA-RP-VS-WEB:/etc/nginx/tls# openssl version -a -v -b -o -f -p -d
-DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM
Actually I should have OpenSSL 1.0.2d
In addition, the LIA-RP-VS-WEB is a XEN guest.
[…]
You should also check the output of “nginx -V” command to be sure
that nginx is built with this version of OpenSSL
Problem with IE 11 is still exist. First connection to static page is
HTTP/2
and if I do refresh I am getting HTTPS in developers tools. FF and
Chrome do
not have this problem.
built on: reproducible build, date unspecified
OPENSSLDIR: “/usr/lib/ssl”
In addition, the LIA-RP-VS-WEB is a XEN guest.
→ proxy = “DIRECT”
nginx mailing list [email protected] nginx Info Page
Have you checked the server directly? I don’t have intimate knowledge of
http2 so rely on Qualys to tell me when I’ve got it set up properly…