小编Cal*_*eng的帖子

nginx try_files 将 .html 重写为“干净”的 url

这是包含静态 html 文件的目录

public
|-- index.html
|-- media
|   `-- blurred_image-8.jpg
|-- post
|   `-- 13considerations
|       `-- index.html
Run Code Online (Sandbox Code Playgroud)

我正在尝试配置 nginx 以转换所有.html以删除后缀结尾的 url 。

像这样:-

server {
    listen       80;
    server_name  mysite.com;

    location / {
        root   /var/www/mysite/public;
        try_files  $uri  $uri/ $uri/index.html;
    }

    location /media/ {
        alias /var/www/mysite/public/media/;
        error_page 404 = /404;
        expires 30d;
    }

    location /static/ {
        alias /var/www/mysite/public/static/;
        error_page 404 = /404;
        expires 30d;
    }
}
Run Code Online (Sandbox Code Playgroud)

这适用于主页“ http://mysite.com/ ”,但如果我尝试访问“ http://mysite.com/post/13thinkations/ ”,则会收到 500 内部服务器错误。

是什么赋予了?

nginx

8
推荐指数
1
解决办法
2万
查看次数

python 应用程序的 uwsgi.ini 配置

所以我正在试验 uWSGI 并且非常喜欢它。

我有一个关于使用它的 .ini 文件的问题。

是否可以动态计算其 .ini 配置参数的值?

例如,对于我的“uwsgi.ini”文件中的“chdir”值,我有

[uwsgi]
socket=127.0.0.1:3034
chdir=/Users/calvin/work/myproject
virtualenv=/Users/calvin/.virtualenvs/myproject
module=django.core.handlers.wsgi:WSGIHandler()
env= DJANGO_SETTINGS_MODULE=myproject.settings
master=True
pidfile=/tmp/myproject-master.pid
vacuum=True
max-requests=5000
daemonize=/var/log/uwsgi/myproject.log
Run Code Online (Sandbox Code Playgroud)

为我的“本地机器”、我的“开发/登台”服务器和我的“生产服务器”编写 3 个单独的 .ini 文件非常麻烦。更何况一个同事的本地机器的chdir价值会完全不同。

我尝试使用import os和动态os.join.path计算chdir值,但它不起作用,这是意料之中的,因为 uwsgi 没有 python 解释器?

uwsgi

7
推荐指数
1
解决办法
2万
查看次数

将 shell 脚本置于 systemd 控制之下

假设我有一个这样的 shell 脚本:-

#!/bin/sh
# cherrypy_server.sh

PROCESSES=10
THREADS=1 # threads per process
BASE_PORT=3035 # the first port used
# you need to make the PIDFILE dir and insure it has the right permissions
PIDFILE="/var/run/cherrypy/myproject.pid"
WORKDIR=`dirname "$0"`
cd "$WORKDIR"

cp_start_proc()
{
 N=$1
 P=$(( $BASE_PORT + $N - 1 ))
 ./manage.py runcpserver daemonize=1 port=$P pidfile="$PIDFILE-$N" threads=$THREADS request_queue_size=0 verbose=0
}

cp_start()
{
 for N in `seq 1 $PROCESSES`; do
  cp_start_proc $N
 done
}

cp_stop_proc()
{
 N=$1
 #[ -f "$PIDFILE-$N" ] && kill `cat …
Run Code Online (Sandbox Code Playgroud)

bash arch-linux init.d systemd

6
推荐指数
1
解决办法
1万
查看次数

golang 应用程序的服务文件

因此,我编写了一个 golang 应用程序,systemd每当我的服务器重新启动时,我都希望对其进行初始化。

这是服务文件:-

[Unit]
Description=golang wiki initialization

[Service]
Type=forking
PIDFile=/tmp/gowiki.pid-3030
User=root
Group=root
WorkingDirectory=/var/www
ExecStart=/bin/bash -c 'daemonize -o stdout.log -e stderr.log /var/www/wiki'

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

每当我重新启动服务器时,它似乎都能很好地工作,但是当我gowiki在终端中手动启动或重新启动时,我仍然遇到了一些令人恼火的问题:-

systemctl start gowiki
Run Code Online (Sandbox Code Playgroud)

或者

systemctl restart gowiki
Run Code Online (Sandbox Code Playgroud)

这确实让我的 gowiki 进程运行;然而,在我执行我的systemctl start gowiki命令后,我被冻结在我的终端中,并且在我手动强制按下 Ctrl-C 之前,该命令似乎不会退出。

我做错了什么导致这个问题?

systemd

6
推荐指数
1
解决办法
7901
查看次数

标签 统计

systemd ×2

arch-linux ×1

bash ×1

init.d ×1

nginx ×1

uwsgi ×1