2017-12-08 9 views
0

DockerのWordPressのコンテナで他の誰かが同様の問題を抱えているかどうか疑問に思っています。私は私のapache/wordpressの能力に自信がありません。多分ここの誰かが助けることができます。NGINXリバースプロキシの背後で動作するようにWordPressのコンテナを取得するにはどうすればいいですか?

sslを使用してnginxリバースプロキシの後ろに標準のWordPressのドッカーコンテナを設定しようとしています。

他のすべてのアプリはうまく動作しますが、それは問題のあるworpress/apacheだけです。

私のnginxののは、default.conf:

私は私のワードプレスコンテナを始めてどのように
server { 
     listen 80; 
     server_name example.com; 
     return 301 https://example.com$request_uri; 
} 
########## ADDED 
upstream app-a { 
    server example.com:2368; 
} 

upstream app-b { 
    server example.com:8080; 
} 

########## 
server { 
     listen 443 ssl; 
     server_name example.com; 
     root /usr/share/nginx/html; 
     index index.html index.htm; 
     client_max_body_size 10G; 
     location/{ 
       proxy_pass   http://app-a; 
      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 $server_name; 
     } 

location = /press { 
       return 301 https://example.com:8443; 
     } 


     ssl on; 
     ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; 
     ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; 
     ssl_prefer_server_ciphers On; 
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
     ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS; 
} 


server { 
     listen 8443 ssl; 

     server_name example.com; 

     #root /usr/share/nginx/html; 
     root /var/www/html/press; 
     index index.php index.html index.htm; 
     client_max_body_size 10G; 

     location/{ 
       proxy_pass   http://app-b; 
      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 $server_name; 
     } 


     ssl on; 
     ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; 
     ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; 

     ssl_prefer_server_ciphers On; 
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
     ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS; 

} 

docker run -d --name mywordpress --link mytestsql:mysql -v mypressvol:/var/www/html -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=secret -p 8080:80 wordpress 

私はWPのセットアップを実行すると、私は言語の選択が、ありませんグラフィックスを取得し、安全ではありません示しアドレスバーにしかし、もし私が私のブラウザで8080に行っても、アプリはうまく動作しますが、SSLはありません。私は他のすべてのアプリがこれでうまくいくと言ったように。それは私にぴったりのワードプレスです。何か案は?ありがとう。

答えて

0

この構成が正常に動作:

1)nginxのプロキシ

server { 
    listen       80; 
    server_name      example.ru www.example.ru; 
    return 301      https://$server_name$request_uri; 
} 

server { 
    listen 443; 
    server_name example.ru www.example.ru; 

    ssl_certificate   /etc/nginx/certs/example.ru.crt; 
    ssl_certificate_key  /etc/nginx/certs/example.ru.key; 

    ssl on; 
    ssl_session_cache builtin:1000 shared:SSL:10m; 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; 
    ssl_prefer_server_ciphers on; 

    location/{ 
     proxy_pass http://wp_web; 
    } 
} 

サービス名でコンテナにアクセスするために、ドッキングウィンドウ-compose.ymlに一つのネットワークでそれらの両方を置くことを忘れないでください。

2)Wordpressのコンテナ。あなたのホスト。 Apache2 conf

<VirtualHost *:80> 
    # The ServerName directive sets the request scheme, hostname and port that 
    # the server uses to identify itself. This is used when creating 
    # redirection URLs. In the context of virtual hosts, the ServerName 
    # specifies what hostname must appear in the request's Host: header to 
    # match this virtual host. For the default virtual host (this file) this 
    # value is not decisive as it is used as a last resort host regardless. 
    # However, you must set it for any further virtual host explicitly. 

    ServerName example.ru 
    ServerAlias www.example.ru 

    SetEnvIf X-Forwarded-Proto https HTTPS=on 

    ServerAdmin [email protected] 
    DocumentRoot /var/www/example 

    <Directory /var/www/example> 
     Allowoverride All 
    </Directory> 

    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, 
    # error, crit, alert, emerg. 
    # It is also possible to configure the loglevel for particular 
    # modules, e.g. 
    #LogLevel info ssl:warn 

    ErrorLog /var/www/example/logs/apache.error.log 
    CustomLog /var/www/example/logs/apache.access.log combined_with_x_real_ip 

    # For most configuration files from conf-available/, which are 
    # enabled or disabled at a global level, it is possible to 
    # include a line for only one particular virtual host. For example the 
    # following line enables the CGI configuration for this host only 
    # after it has been globally disabled with "a2disconf". 
    #Include conf-available/serve-cgi-bin.conf 
</VirtualHost> 
+0

多分私は複数のアプリケーションを使用しているため、私のために働いていないでしょう。 – beaugotro

+0

私のconfを使うときに何が起こっているか教えてください。私は助けようとします。 –

関連する問題