在Ubuntu 10.04上用Nginx自动启动Tornado并使用域名

我已经设置了我的nginx.conf文件,它看起来像这样:

root www www; worker_processes 1; worker_rlimit_nofile 8192; events { worker_connections 8000; accept_mutex off; } error_log logs/error.log; pid logs/nginx.pid; http { # Set the mime-types include mime.types; # And the fallback mime-type default_type application/octet-stream; # Format for our log files log_format main '$remote_addr - $remote_user [$time_local] $status ' '"$request" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; # Click tracking! access_log logs/access.log main; # ~2 seconds is often enough for HTML/CSS, but connections in # Nginx are cheap, so generally it's safe to increase it keepalive_timeout 5; # You usually want to serve static files with Nginx sendfile on; tcp_nopush on; # off may be better for Comet/long-poll stuff tcp_nodelay off; # on may be better for Comet/long-poll stuff # Enable Gzip gzip on; gzip_http_version 1.0; gzip_comp_level 2; gzip_min_length 1100; gzip_buffers 4 8k; gzip_proxied any; gzip_types text/html text/plain text/xml application/xml application/xml+rss text/css text/javascript application/javascript application/json; gzip_static on; gzip_proxied expired no-cache no-store private auth; gzip_disable "MSIE [1-6]\."; gzip_vary on; server { # listen 80 default deferred; # for Linux # listen 80 default accept_filter=httpready; # for FreeBSD listen 80 default; # eg "localhost" to accept all connections, or "www.example.com" # to handle the requests for "example.com" (and www.example.com) server_name _; # Path for static files root /srv/www/example.com/public_html/src/static; expires 1M; # Static assets location ~* ^.+\.(manifest)$ { expires -1D; root /srv/www/example.com/public_html/src/; access_log /srv/www/example.com/logs/static.logs; } location ~* ^.+\.(ico|ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { # Only set expires max IFF the file is a static file and exists if (-f $request_filename) { expires max; root /srv/www/example.come/public_html/src/static; access_log /srv/www/example.com/logs/static.logs; } } } } 

我对nginx文件的问题是:1)我想要托pipe我的应用程序的域名:www.example.com,哪一行nginx.conf文件是否改变?

我的nginx.conf文件位于app.py所在的文件夹中。

2)当我尝试通过键入/etc/init.d/nginx start来启动nginx时,收到以下错误消息:

错误信息:

 Starting nginx: [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use) [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use) [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use) [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use) [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use) [emerg]: still could not bind() nginx. 

我没有对/ etc / nginx中find的nginx.conf文件进行任何configuration我的问题是:3)如何修复错误? 4)我如何自动启动nginx?

我已经尝试通过inputpython app.py运行我的Tornado应用程序比我导航到http://xxx.xx.xxx.xxx:8888 ,我的应用程序正常工作。

但是,如果我closures我的terminal(杀死进程),我的龙卷风应用程序不再有效。

我的问题是:5)我如何自动启动龙卷风应用程序? 6)我如何在域名上运行龙卷风?

谢谢大家的耐心。

最好的祝福。

1)更改server_name

2)你可能有Apache运行。

3)停止服务(使用像service httpd stop ),然后启动nginx。

4)尝试下面的命令:

 $ chkconfig httpd off $ chkconfig --add nginx $ chkconfig nginx on $ service nginx start 

5)看看使用主管运行Python应用程序

6)查看nginx wiki获取有关反向代理的信息; nginx处理对域的请求并将这些请求传递给你的龙卷风后端。

关于错误信息:使用Ubuntu 11.10时出现同样的问题,似乎Opera占用了80端口,所以只需修改这个值即可。