nginx代理,wildfly做web容器实现网站输入域名跳转到https的域名

应公司要求想要实现用户输入域名访问网站,自动跳转到https加域名的网页,因为添加了ssl,能显示公司的名称。我的操作方法是把ssl放到web容器中,前面加一个nginx做代理,将所有到80端口的请求,转到web容器的443的端口上。

配置web容器的方法在之前写过,参考《wildfly用https的方式访问,链接:http://881955.blog.51cto.com/871955/1670069

 

安装wildfly的方式

yum install java-1.8.0-openjdk-devel

Wget http://download.jboss.org/wildfly/8.2.0.Final/wildfly-8.2.0.Final.zip

unzip wildfly-8.2.0.Final.zip -d /opt/

ln -s /opt/wildfly-8.2.0.Final /opt/wildfly

cp /opt/wildfly/bin/init.d/wildfly.conf /etc/default/wildfly.conf\


Vim  /etc/default/wildfly.conf

## Location of JDK

JAVA_HOME="/usr/lib/jvm/java"

## Location of WildFly

JBOSS_HOME="/opt/wildfly"

## The username who should own the process.

JBOSS_USER=wildfly

## The mode WildFly should start, standalone or domain

JBOSS_MODE=standalone

## Configuration for standalone mode

JBOSS_CONFIG=standalone-full-ha.xml

## Configuration for domain mode

# JBOSS_DOMAIN_CONFIG=domain.xml

# JBOSS_HOST_CONFIG=host-master.xml

## The amount of time to wait for startup

STARTUP_WAIT=60

## The amount of time to wait for shutdown

SHUTDOWN_WAIT=60

## Location to keep the console log

JBOSS_CONSOLE_LOG="/var/log/wildfly/console.log"


Cp /opt/wildfly/bin/init.d/wildfly-init-redhat.sh /etc/init.d/wildfly

chkconfig --add wildfly

chkconfig wildfly on

mkdir -p /var/log/wildfly

useradd  -s /sbin/nologin wildfly

chown -R wildfly:wildfly /opt/wildfly-8.2.0.Final

chown wildfly:wildfly /opt/wildfly

chown wildfly:wildfly /var/log/wildfly

Start WildFly

service wildfly start


安装完wildfly后安装nginx,nginx的安装方法不在赘述,不过我在阿里云上部署的时候遇到一点问题,在我本地虚拟机上做测试的时候源码nginx,yun包的pcre和zlib安装时成功的,但是在阿里云上这么操作就部可以,提交工单询问后,解释为不能源码包和yum包混用。无奈直接用yum安装nginx。

Nginx比较关键的地方是配置代理部分:配置如下

由于我后面的web容器需要监听443,那么我nginx需要鉴定80端口

# HTTPS server

    server {

        listen       80;

        server_name  10.10.10.34;

        ssl                  on;

        ssl_certificate   crt文件路径   

        ssl_certificate_key  key文件路径

        ssl_session_timeout  5m;

        error_page 497  https://10.10.10.34;

    #    ssl_protocols  SSLv2 SSLv3 TLSv1;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;

    #    ssl_prefer_server_ciphers   on;

        location / {

             root   html;

             index  index.html index.htm;

             #proxy_pass   http://;

             #proxy_set_header Host   $host;

             #proxy_set_header X-Real-IP     $remote_addr;

             #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

         }

    }

 

上面红色部分这样写是因为,输入域名访问的时候,访问页面会400的问题,这一行配置是把请求从400页面上重定向到https上。

当wildfly监听的httpss端口改成443后,会报错,启动不了443端口,这是因为端口号小于1024的必须要用root权限来启动,所以上面给文件,目录chown的地方要都给改成root的用户,用户组的权限,这样wildfly的443端口就能起来了。

最终实现的过程是用户输入域名请求到80端口,nginx将过来的请求重定向到wildfly的443上,实现页面的跳转

公司的服务器托管在阿里云上,在负载均衡slb上加证书信息,用js页面跳转即可。

一般情况下一台设备只用一张证书,想加扩展就是多申请证书。一般就是将证书放在nginx上,这样webserver横向扩展,就没有证书方面的顾虑了。

 

参考资料:

http://www.cnblogs.com/yun007/p/3739182.html

http://developer-should-know.tumblr.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux

关于nginx负载均衡ip-hash的配置,保证用户的session会话

http://www.cnblogs.com/xiaogangqq123/archive/2011/03/04/1971002.html

http://serverfault.com/questions/610117/failed-to-bind-to-0-0-0-0443

 


文章来自:http://881955.blog.51cto.com/871955/1684639
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3