随身笔记
随身笔记

centos 6.x手动安装编译nginx

centos安装nginx

1,下载nginx
http://nginx.org/download/nginx-1.11.12.tar.gz
http://nginx.org/en/download.html

 

2,安装Nginx所依赖的包:

gcc -v   //查看系统是否安装gcc

rpm -qa | grep pcre  或者 pcre-config –version  //是否安装pcre

rpm -qa | grep zlib //是否安装zlib

openssl version   或者  openssl version -a  //是否安装  (最低要求1.0.2)

wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz
tar zxf openssl-1.1.0e.tar.gz

(一般情况下系统都会安装的)
yum -y install pcre*

yum -y install openssl*

yum -y install zlib*

 

3,切换到下载好的压缩包所在目录
例如:tar -zxvf nginx-1.11.12.tar.gz

 

4,查看openssl安装目录
一般在目录:
/usr/local/ssl
/usr/local/openssl
/usr/local/lib64 (我的在)

如果你是用rpm安装的
可以用命令
rpm -ql openssl

 

5,进入到解压好的nginx目录里面

关闭防火墙:service iptables stop
执行:

./configure --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --with-openssl=/usr/lib64/openssl --with-http_stub_status_module --with-debug --with-http_ssl_module --with-http_realip_module --with-http_gzip_static_module --with-http_v2_module

别人的安装参数:

--with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2'
--with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now'
--prefix=/usr/share/nginx
--conf-path=/etc/nginx/nginx.conf
--http-log-path=/var/log/nginx/access.log
--error-log-path=/var/log/nginx/error.log
--lock-path=/var/lock/nginx.lock
--pid-path=/run/nginx.pid
--http-client-body-temp-path=/var/lib/nginx/body
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi
--http-proxy-temp-path=/var/lib/nginx/proxy
--http-scgi-temp-path=/var/lib/nginx/scgi
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi
--with-debug
--with-pcre-jit
--with-ipv6
--with-http_ssl_module
--with-http_stub_status_module
--with-http_realip_module
--with-http_auth_request_module
--with-http_addition_module
--with-http_dav_module
--with-http_geoip_module
--with-http_gunzip_module
--with-http_gzip_static_module
--with-http_image_filter_module
--with-http_v2_module
--with-http_sub_module
--with-http_xslt_module
--with-stream
--with-stream_ssl_module
--with-mail
--with-mail_ssl_module
--with-threads

 

6,接着编译
make && make install

 

7,启动nginx

cd /usr/local/nginx/sbin
/usr/local/nginx/sbin/nginx -V //查看版本和查看已安装模块
执行./nginx
启动:./nginx
停止:./nginx -s stop
重启:./nginx -s reopen
执行./nginx -h 可以看到命令的帮助信息

配置文件:
/nginx/nginx/conf/nginx.conf

 

8,加入系统托管,利用chkconfig控制

//执行文件名为:nginx

(注意路径)

#!/bin/bash
# chkconfig: - 30 21
# description: http service.
# Source Function Library
. /etc/init.d/functions

# Nginx Settings
NGINX_SBIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
NGINX_PID="/usr/local/nginx/logs/nginx.pid"

RETVAL=0
prog="Nginx"

start() {
 echo -n $"Starting $prog: "
 mkdir -p /dev/shm/nginx_temp
 daemon $NGINX_SBIN -c $NGINX_CONF
 RETVAL=$?
 echo
 return $RETVAL
}

stop() {
 echo -n $"Stopping $prog: "
 killproc -p $NGINX_PID $NGINX_SBIN -TERM
 rm -rf /dev/shm/nginx_temp
 RETVAL=$?
 echo
 return $RETVAL
}

reload(){
 echo -n $"Reloading $prog: "
 killproc -p $NGINX_PID $NGINX_SBIN -HUP
 RETVAL=$?
 echo
 return $RETVAL
}

restart(){
 stop
 start
}

configtest(){
 $NGINX_SBIN -c $NGINX_CONF -t
 return 0
}

case "$1" in
 start)
 start
 ;;
 stop)
 stop
 ;;
 reload)
 reload
 ;;
 restart)
 restart
 ;;
 configtest)
 configtest
 ;;
 *)
 echo $"Usage: $0 {start|stop|reload|restart|configtest}"
 RETVAL=1
esac

exit $RETVAL

 

执行以下步骤:

cp nginx /etc/rc.d/init.d/

chmod 755 /etc/init.d/nginx

chkconfig –level 2345 nginx on

chkconfig –list nginx  //2345都是on表示设置成功

下载: nginx

 

nginx.conf  //一些常用配置

 user root;
#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
 worker_connections 1024;
}


http {
 proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=one:8m max_size=3000m inactive=600m;
 proxy_temp_path /var/tmp;
 include mime.types;
 default_type application/octet-stream;
 sendfile on;
 keepalive_timeout 65;
 
 gzip on;
 gzip_comp_level 6;
 gzip_vary on;
 gzip_min_length 1000;
 gzip_proxied any;
 gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
 gzip_buffers 16 8k;
 
  ssl_certificate /root/www/Nginx/1_www.easynode.cn_bundle.crt;
 ssl_certificate_key /root/www/Nginx/2_www.easynode.cn.key;
 ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DSS:!DES:!RC4:!3DES:!MD5:!PSK;
ssl_prefer_server_ciphers on;
 
 upstream silly_face_society_upstream {
 server 127.0.0.1:3000;
 #server 127.0.0.1:8887;
 keepalive 64;
 }
 






 
 server {
 listen 80;
 listen 443 ssl;
 
 server_name www.easynode.cn;
 
 #error_page 502 /errors/502.html;
 
 if ($scheme = http) {
 return 301 https://$server_name$request_uri;
 }

 #location ~ ^/(images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) {
 #root /root/www/easynode/public;
 #access_log off;
 #expires max;
 #}
 
 location ~ .*\.(woff|eot|svg|ttf|favicon.ico|gif|jpg|jpeg|png|bmp|swf)$
 {
 access_log off;
 log_not_found off;
 expires max;
 root /root/www/easynode/public; #重点
 }

 location ~ .*\.(js|css)?$
 {
 access_log off;
 log_not_found off;
 expires max;
 root /root/www/easynode/public; #重点
 }





 #location /errors {
 # internal;
 # alias /usr/local/silly_face_society/node/public/errors;
 #}
 
 location / {
 proxy_redirect off;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto $scheme;
 proxy_set_header Host $http_host;
 proxy_set_header X-NginX-Proxy true;
 proxy_set_header Connection "";
 proxy_http_version 1.1;
 proxy_cache one;
 proxy_cache_key sfs$request_uri$scheme;
 proxy_pass http://silly_face_society_upstream;
 }

 
 
 }





}

 

9,为nginx添加额外模块

(1)./nginx -V  //获取到当前的参数

例如:
--prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --with-openssl=/root/openssl-1.1.0e --with-http_stub_status_module

(2)例如安装下载nginx-rtmp-module模块,去下载该模块解压获取到该模块的目录。

/root/nginx-rtmp-module-master  //解压后的路径

(3)在nginx根目录下看是否有configure文件,有可以进行安装,追加模块安装

./configure --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --with-openssl=/root/openssl-1.1.0e --with-http_stub_status_module --add-module=/root/nginx-rtmp-module-master
make //在接着执行,千万不要执行make install

(4)到sbin目录下备份一下原来的nginx文件,例如改成nginx_bak

(5)到objs目录下把nginx复制到sbin目录中即可,之后到sbin目录执行./nginx -V看看是否追加了安装的模块

 

 

随身笔记

centos 6.x手动安装编译nginx
centos安装nginx 1,下载nginx http://nginx.org/download/nginx-1.11.12.tar.gz http://nginx.org/en/download.html   2,安装Nginx所依赖的包: gcc -v   //查看系…
扫描二维码继续阅读
2017-03-31