完全に備忘録です。
実用サーバではなくテスト動作用のローカル環境の設定メモとして残します。 セキュリティ的なことにはまったく触れていないので注意。 あくまで、手元でwordpressやwsgiをいじってみただけの設定です。
拾い集めたものなので、公式を当たっていただいたほうが確実です。
ごく簡単に解説
"django.localnet"と"wordpress.localnet"をvhostsとして参照します。管理のためにファイルを分けて、includeしています。 どちらも、unix socketで受けていて、httpへのアクセスは全てhttpsへ回しています。 パス回りはそれぞれの環境に合わせてください。
django
djangoはstatic以下を高速に参照するために、ファイルを集めておくことができます。
# settings.py に 次の様にSTATIC_ROOT を追加
# STATIC_ROOT = os.path.join(BASE_DIR, 'static')
python manage.py collectstatic
djangoには、別途uwsgiの設定も必要です。
wordpress
proxy設定はコメントアウトしています。
設定
/etc/nginx/nginx.conf
user nginx nginx;
worker_processes 3;
error_log /var/log/nginx/error_log info;
events {
worker_connections 1024;
use epoll;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main
'$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio"';
client_header_timeout 10m;
client_body_timeout 10m;
send_timeout 10m;
connection_pool_size 256;
client_header_buffer_size 1k;
large_client_header_buffers 4 2k;
request_pool_size 4k;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain;
output_buffers 1 32k;
postpone_output 1460;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 75 20;
ignore_invalid_headers on;
index index.html;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
proxy_cache_path /var/lib/nginx/cache levels=1:2 keys_zone=cache-space:4m max_size=50m inactive=120m;
proxy_temp_path /var/lib/nginx/tmp;
include vhosts/django.localnet.conf;
include vhosts/wordpress.localnet.conf;
}
/etc/nginx/nginx.conf/vhosts/django.localnet.conf
# ##############################################################################
# django
server {
listen 80;
server_name django.localnet;
return 301 https://$host$request_uri;
}
# ==============================================================================
server {
listen 443 ssl;
server_name django.localnet;
ssl_certificate /etc/ssl/nginx/nginx.pem;
ssl_certificate_key /etc/ssl/nginx/nginx.key;
keepalive_timeout 70;
access_log /var/log/nginx/django.localnet.access_log main;
error_log /var/log/nginx/django.localnet.error_log info;
# ----------------------------------------------------------------------------
location / {
include uwsgi_params;
uwsgi_param SCRIPT_NAME /;
uwsgi_modifier1 30;
uwsgi_pass unix://tmp/django.sock;
proxy_cache cache-space;
proxy_cache_valid 200 302 60m;
proxy_cache_valid 404 10m;
}
# ----------------------------------------------------------------------------
location /static/ {
if ($http_referer !~* (django.localnet) ){
return 403;
}
root /home/hanepjiv/projects/django;
autoindex off;
expires 4h;
}
}
/etc/uwsgi.d/django.xml
<uwsgi>
<plugins>python33</plugins>
<master>true</master>
<processes>3</processes>
<vaccum>true</vaccum>
<chmod-socket>660</chmod-socket>
<socket>/tmp/%n.sock</socket>
<uid>nginx</uid>
<gid>nginx</gid>
<pythonpath>/home/hanepjiv/projects/%n</pythonpath>
<module>django.wsgi</module>
</uwsgi>
/etc/nginx/nginx.conf/vhosts/wordpress.localnet.conf
# ##############################################################################
# wordpress
server {
listen 80;
server_name wordpress.localnet;
return 301 https://$host$request_uri;
}
# ==============================================================================
server {
listen 443 ssl;
server_name wordpress.localnet;
ssl_certificate /etc/ssl/nginx/nginx.pem;
ssl_certificate_key /etc/ssl/nginx/nginx.key;
keepalive_timeout 70;
access_log /var/log/nginx/wordpress.localnet.access_log main;
error_log /var/log/nginx/wordpress.localnet.error_log info;
# ----------------------------------------------------------------------------
location / {
root /home/hanepjiv/projects/wordpress;
index index.php;
if (!-e $request_filename) {
rewrite ^/(.+)$ /index.php?q=$1 last;
break;
}
}
location ~ \.php {
root /home/hanepjiv/projects/wordpress;
fastcgi_pass unix:/tmp/fpm-php5.5.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/hanepjiv/projects/wordpress$fastcgi_script_name;
include fastcgi_params;
#proxy_cache cache-space;
#proxy_cache_valid 200 302 60m;
#proxy_cache_valid 404 10m;
}
}
0 件のコメント:
コメントを投稿