nginx 啟動時會自動安裝let’s encrypt ssl ,nginx與tomcat及php-fpm間使用proxy_pass,大概如下:
server { # Listen to port 443 on both IPv4 and IPv6. listen 443 ssl default_server reuseport; listen [::]:443 ssl default_server reuseport; # Domain names this server should respond to. server_name a.yslifes.com; root /var/www/html; # Load the certificate files. ssl_certificate /etc/letsencrypt/live/a.yslifes.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/a.yslifes.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/a.yslifes.com/chain.pem; # Load the Diffie-Hellman parameter. ssl_dhparam /etc/letsencrypt/dhparams/dhparam.pem; #return 200 'Let\'s Encrypt certificate successfully installed!'; #add_header Content-Type text/plain; gzip on; gzip_types text/plain application/xml application/json; gzip_comp_level 9; gzip_min_length 1000; #brotli on; # 預設為 6, 0 ~ 11; 值愈大壓縮率愈高,使用的 CPU 愈多~ #brotli_comp_level 6; #brotli_static on; # 壓縮對像 #brotli_types application/atom+xml application/javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype application/x-font-ttf application/x-javascript application/xhtml+xml application/xml font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #location / { # proxy_pass http://api/; #} # Add index.php to the list if you are using PHP index index.php index.html index.htm index.nginx-debian.html; # location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. # try_files $uri $uri/ =404; # } location / { proxy_pass http://tomcat10:8080/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Forwarded $proxy_add_x_forwarded_for; proxy_set_header Host $host; } # location ~ [^/]\.php(/|$) { # fastcgi_split_path_info ^(.+?\.php)(/.*)$; # if (!-f $document_root$fastcgi_script_name) { # return 404; # } # Mitigate https://httpoxy.org/ vulnerabilities # fastcgi_param HTTP_PROXY ""; # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # fastcgi_param PATH_INFO $fastcgi_path_info; # fastcgi_pass phpfpm7.4:9000; # fastcgi_index index.php; # include the fastcgi_param setting # include fastcgi_params; # SCRIPT_FILENAME parameter is used for PHP FPM determining # the script name. If it is not set in fastcgi_params file, # i.e. /etc/nginx/fastcgi_params or in the parent contexts, # please comment off following line: # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # } }
docker-compose.yml檔如下:
Read More