CentOS6.x安装配置nginx [转]

 
nginx安装
nginx的官网:http://nginx.org/
 
相应下载页面:http://nginx.org/en/download.html
 
我这里使用nginx的yum在线安装

wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

安装源库

chmod +x nginx-release-centos-6-0.el6.ngx.noarch.rpm 

rpm -i nginx-release-centos-6-0.el6.ngx.noarch.rpm 

安装nginx

yum install nginx

 
安装完成后
默认nginx配置文件: /etc/nginx/nginx.conf         【nginx主要的配置文件】 
默认nginx的ssl配置文件: /etc/nginx/conf.d/ssl.conf 【配置SSL证书的,也可以并入到nginx.conf文件里】 
默认nginx的虚拟主机配置文件: /etc/nginx/conf.d/virtual.conf 【如同Apache的虚拟主机配置,也可以并入到nginx.conf文件里】 
默认的web_root文件夹路径: /usr/share/nginx/html 【web目录夹,放置Magento主程序】 
 
配置iptables

iptables -I INPUT 5 -p tcp --dport 80 -j ACCEPT

 
启动nginx

service nginx start

打开IP地址 可见“Welcome to nginx!”表示安装成功。

 
=============================================================
以下自己加的,非root启动nginx
先关闭默认启动的nginx

chkconfig --level 2345 nginx off

 
复制/etc/nginx/nginx.conf到别的地方

cp /etc/nginx/nginx.conf /home/user/etc/nginx/nginx.conf

 
启动

/usr/sbin/nginx -c /home/user/etc/nginx/nginx.conf

 
关闭

killall nginx


 
=======================================================
conf改成下如下
user  nginx;
worker_processes  1;
 
error_log  /home/user/log/nginx/error.log warn;
pid        /home/user/log/nginx/run/nginx.pid;
 
 
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"';
 
    access_log  /home/user/log/nginx/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
    keepalive_timeout  65;
 
    gzip  on;
 
    include /home/user/etc/nginx/conf.d/*.conf;
}

 
/home/user/etc/nginx/conf.d/default.conf;里面
server {
    listen       8080;
注意:端口是1024以下,一定要root权限启动才可以绑定(这是Linux系统机制问题),否则非root启动会提示无法绑定端口
 
==========================================
非root用户启动,使用80端口:

cd /usr/sbin

发现:
-rwxr-xr-x. 1 root root  834352 Dec 12 00:57 nginx
按照网上的说法,给nginx添加s的权限:

chmod u+s nginx

再查看:
-rwsr-xr-x. 1 root root  834352 Dec 12 00:57 nginx
 
再次以非root启动:
root      1736     1  0 23:51 ?        00:00:00 nginx: master process /usr/sbin/nginx -c /home/user/etc/nginx/nginx.conf
nginx     1737  1736  0 23:51 ?        00:00:00 nginx: worker process  
 
主线程还是root。子线程不一定是root了
另外:
如果nginx设置目录在/home/user下面。
/home/user一定要给o+x的权限,否则会报403 forbidden
20160615补充:
以上权限问题由于selinux引起,不再建议添加S权限这类的,会引起安全问题。
例如:nginx无法转发upstream,可以用 

setsebool -P httpd_can_network_connect 1

解决。
其他的同样可以配置对应的selinux进行解决。
posted @ 2016-08-19 09:50  jimcsharp  阅读(226)  评论(0编辑  收藏  举报