在Azure VMSS上用Cloud Init部署WordPress时出现502错误网关
问题:Azure VMSS搭配应用网关部署WordPress异常(疑似NFS挂载相关配置问题)
我正尝试使用Terraform和Cloud Init在Azure虚拟机规模集(VMSS)上搭配应用网关部署WordPress实例。目前判断问题出在wordpress.conf和wp-config.php文件的挂载配置上,而非基础设施配置——因为仅启动nginx时,公网IP的80端口能正常返回"Welcome to nginx"页面。
当前使用的Cloud Init文件
#cloud-config package_upgrade: true packages: - nginx - php-curl - php-gd - php-intl - php-mbstring - php-soap - php-xml - php-xmlrpc - php-zip - php-fpm - php-mysql - nfs-common write_files: - path: /tmp/wp-config.php content: | <?php define('DB_NAME', 'wordpressdb'); define('DB_USER', 'wordpress'); define('DB_PASSWORD', 'w0rdpr3ss@p4ss'); define('DB_HOST', '${database_fqdn}'); $table_prefix = 'wp_'; if ( ! defined( 'ABSPATH' ) ) { define( 'ABSPATH', __DIR__ . '/' ); } require_once ABSPATH . 'wp-settings.php'; ?> - path: /tmp/wordpress.conf content: | server { listen 80; server_name _; root /data/nfs/wordpress; index index.html index.htm index.php; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { log_not_found off; access_log off; allow all; } location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ { expires max; log_not_found off; } location ~ /\.ht { deny all; } } runcmd: - mkdir -p /data/nfs/wordpress - mount -t nfs ${wordpress_storage_account_name}.file.core.windows.net:/${wordpress_storage_account_name}/${client_tag}wpstorageshare${environment_prefix} /data/nfs -o vers=4,minorversion=1,sec=sys - wget http://wordpress.org/latest.tar.gz -P /data/nfs/wordpress - tar xzvf /data/nfs/wordpress/latest.tar.gz -C /data/nfs/wordpress --strip-components=1 - cp /tmp/wp-config.php /data/nfs/wordpress/wp-config.php - cp /tmp/wordpress.conf /etc/nginx/sites-available/wordpress.conf - ln -s /etc/nginx/sites-available/wordpress.conf . - chown -R www-data:www-data /data/nfs/wordpress - rm /etc/nginx/sites-enabled/default - rm /etc/nginx/sites-available/default - mkdir /etc/systemd/system/nginx.service.d - printf "[Service]\nExecStartPost=/bin/sleep 0.1\n" > /etc/systemd/system/nginx.service.d/override.conf - systemctl daemon-reload - systemctl restart nginx
备注:上述cloud-init文件配置为将WordPress和nginx配置文件解压放置到挂载的Azure存储账户(NFS)目录中。
已尝试的修复措施
- 更新“location /”块语法(无变化)
- 使用
sudo nginx -t检查配置语法(返回正常) - 尝试修改nginx监听端口(无变化)
- 查看VM配置时的串行日志(未发现错误)
- 执行
sudo systemctl status nginx检查服务器状态(显示为运行中)
预期结果
首次访问应用网关的公网IP时,能显示WordPress初始化页面。
内容的提问来源于stack exchange,提问作者Dylan Edmonds
相关产品推荐
相关产品推荐

