【发布时间】:2021-06-26 19:13:18
【问题描述】:
我正在尝试将我的 EC2 服务器迁移到 ElasticBeanstalk,除了 nginx 之外的一切都在运行,因为它失去了它的配置
我是 AWS 的初学者,所以我尝试使用 .platform(.platform/nginx/conf.d/elasticbeanstalk/nginx.conf,我也尝试过 .platform/nginx/nginx.conf,但它与默认 nginx.conf 中的 include conf.d/elasticbeanstalk/*.conf; 不匹配)
使用此代码
#Elastic Beanstalk Nginx Configuration File
index index.php;
access_log /var/log/nginx/access.log main;
location /api/ {
if (!-e $request_filename){
rewrite ^(.*)$ /api/index.php last;
}
location /api/ {
try_files $uri $uri/ /api/index.php?$query_string;
}
}
location ~ \.php {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $fastcgi_path_info;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:8081;
}
但由于它似乎不起作用,我尝试将 .ebextensions 与这 2 个脚本一起使用
#
# STEP 1 - Create the nginx config file
#
files:
"/tmp/my.nginx.conf" :
mode: "000755"
owner: root
group: root
content: |
#Elastic Beanstalk Nginx Configuration File
user nginx;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
worker_processes auto;
worker_rlimit_nofile 66966;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
include conf.d/*.conf;
map $http_upgrade $connection_upgrade {
default "upgrade";
}
server {
listen 80 default_server;
server_name http://xxx.xxx.eu-west-1.elasticbeanstalk.com/;
index index.php;
access_log /var/log/nginx/access.log main;
client_header_timeout 180;
client_body_timeout 180;
send_timeout 180;
proxy_connect_timeout 180;
proxy_read_timeout 180;
proxy_send_timeout 180;
keepalive_timeout 180;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
gzip off;
gzip_comp_level 4;
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
# Include the Elastic Beanstalk generated locations
include conf.d/elasticbeanstalk/*.conf;
location /api/ {
if (!-e $request_filename){
rewrite ^(.*)$ /api/index.php last;
}
location /api/ {
try_files $uri $uri/ /api/index.php?$query_string;
}
}
location ~ \.php {
include fastcgi_params;
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $fastcgi_path_info;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:8081;
}
}
}
和
#
# STEP 3 - Run the script to overwrite the nginx config template.
#
container_commands:
cp_nginx:
command: "yes | sudo /bin/cp /tmp/my.nginx.conf /etc/nginx/nginx.conf"
我做错了什么
【问题讨论】:
标签: nginx amazon-elastic-beanstalk