为了节省时间与节约生命,鹚最终还是决定 —— 使用 “LNMP一键安装包0.6” 来完成实验。
至于为什么会选择 “LNMP一键安装包0.6” ,原因有两个。
一我是用CentOS做实验,所以没有什么现成的源来安装RPM包。
二嘛,反正是编译安装,鹚看了一下 “LNMP一键安装包0.6” 的安装脚本……
仔细品味了一番,说实话,鹚还没见过写的这么缜密的安装脚本 —— 完美的编译安装 “LNMP生产套件” 方案!
比鹚自己搞的那堆好多了,所以向好的看齐啦。
好吧,鹚的实验目的也很简单:
一、用 Nginx+FastCGI 来驱动 PHP 。
二、同时还要用 Nginx+UWSGI 驱动 Python 。
三嘛, HTTPS+SSL 是雷也打不掉的。
四呢,当然不要忘记为 GHS 做反向代理哈。
所以Nginx任务艰巨啊!
当然一、三、四都比较好解决。
至于,第二点……
其实也好解决,只不过中间会遇到很多意象不到的问题。
好吧,进入正题。
由于 “LNMP一键安装包” 走的是 生产 路线,其追求的是 “稳定可靠,低资源占用 和 可以抗住海量访问” 等。
所以,其选用的 Nginx 版本为 0.7.67 —— 这个超级稳定的版本。
许多大站都是用的这个 Nginx 版本,不信你自己探测一下 github.com 。
旧版的 Nginx 无法直接支持 UWSGI 这个 Python 网关协议,所以我们要 重新编译 Nginx 。
一、下载 Nginx 和 UWSGI 到 同一目录:
wget http://soft.vpser.net/web/nginx/nginx-0.7.67.tar.gz
wget http://projects.unbit.it/downloads/uwsgi-0.9.7.1.tar.gz
二、将其解压到 同一目录:
tar vzfx nginx-0.7.67.tar.gz
tar vzfx uwsgi-0.9.7.1.tar.gz
三、开始重新编译 Nginx:
cd nginx-0.7.67
记得编译参数如下哦(这里是以CentOS为例,注意红色部分):
./configure –user=www –group=www –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module –with-http_gzip_static_module –with-ipv6 –add-module=../uwsgi-0.9.7.1/nginx/
这样旧版的 Nginx 0.7.67 就可以支持 UWSGI 了。
生成 Makefile 后请 make 。
然后尤其注意 —— 请勿直接 make install!
四、重新整合 Nginx:
在重新编译完 Nginx 之后,在其 源码目录的 objs 下会生成一个 nginx 的二进制可执行文件,其实说白了,Nginx 就一个单一的可以执行文件而已,而我们就要用它来替换原始的 Nginx 文件啦。
还是先备份一下备份原始的 Nginx 文件吧:
sudo cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
开始替换:
sudo /root/lnmp stop
sudo cp ./objs/nginx /usr/local/nginx/sbin/nginx
五、替换完毕,进行组建补全:
sudo mkdir /usr/local/nginx/uwsgi_temp //建立uwsgi缓存。
sudo vi /usr/local/nginx/conf/uwsgi_params //建立uwsgi配置文件。
然后,由于 Nginx 的 UWSGI 配置文件不是很长,我就在这里贴出来啦:
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;
粘贴到vi之后请 —— :wq!
OK,这样就完成了对 旧版Nginx添加UWSGI支持 。
最后,重启一下LNMP就OK啦: sudo /root/lnmp restart 。
对了,以后要添加 Python 虚拟主机的话,记得要加上这条哦,现在的 Nginx 可不只是能运行PHP了,还可以运行Python哦(如下示例)!
location / {
include uwsgi_params;
#uwsgi_pass unix:/tmp/uwsgi.sock;
uwsgi_pass 127.0.0.1:8080;
}
好吧,最后鹚想说。。
写这文章累死我了……
正好需要python在我的Nginx上,好文章
技术文呢,暂且还不需要折腾这些,先记着了
看的有点囧~~~~~~
终于折腾Nginx啦~
下次讲讲 ipv6 。。。
貌似你的二级域名跳转也有问题…
Nginx的conf一直不知咋弄,任何二级域名跳转到主域名除了某些有.conf的
@Auston_Jary , 囧IP6不是一样么,我没有将www跳转,因为我的是https,不想太复杂