Nginx反向代理Odoo并转为https

生成证书文件

生成自签名证书,并放在指定位置

$ openssl req -x509 -days 3650 -subj '/CN=odoo.youyun.com/' -nodes -newkey rsa:2048 -keyout server.key -out server.crt
$ sudo mkdir /etc/ssl/nginx
$ sudo mv server.key server.crt /etc/ssl/nginx

配置nginx

$ sudo rm /etc/nginx/sites-avaliable/default
$ sudo vim /etc/nginx/sites-avalibale/odoo.conf

删除默认的nginx default文件,并新建odoo.conf文件,内容如下

server {
    listen 443 default;
    server_name _;

    access_log /var/log/nginx/odoo.access.log;
    error_log  /var/log/nginx/odoo.error.log;

    ssl on;
    ssl_certificate     /etc/ssl/nginx/server.crt; # 之前生成的证书和key
    ssl_certificate_key /etc/ssl/nginx/server.key;
    ssl_ciphers             HIGH:!ADH:!MD5;
    ssl_protocols           SSLv3 TLSv1;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://127.0.0.1:8069;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

        proxy_buffer_size 128k;
        proxy_buffers 16 64k;
        proxy_redirect off;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Proto https;
    }

   location ~* /web/static/ {
        proxy_cache_valid 200 60m;
        proxy_buffering    on;
        expires 864000;
        proxy_pass http://127.0.0.1:8069;
    }
}

server {   # 将80端口转到443的https中
    listen 80;
    server_name __;

    add_header Strict-Transport-Security max-age=2592000;
    rewrite ^/.*$ https://$host$request_uri? permanent;
}

server {   # 将特定ip的8069端口转到443的https中
    listen 192.168.1.102:8069; # 这是虚机的ip
    server_name __;

    add_header Strict-Transport-Security max-age=2592000;
    rewrite ^/.*$ https://$host$request_uri? permanent;
}

配置访问源主机

  • 安装之前生成的server.crt证书
  • 修改hosts文件添加, 由于之前的证书使用的是该域名 

猜你喜欢

转载自www.cnblogs.com/dancesir/p/9105648.html