linux下手动安装单独的nginx服务或者让nginx支持https

2017-12-12

安装依赖包
yum -y install gcc gcc-c++ autoconf automake && yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel 
 
wget http://nginx.org/download/nginx-1.9.2.tar.gz
如果以上地址无法下载请下载
wget https://zxdowncom.oss-cn-shanghai.aliyuncs.com/package/nginx-1.9.2.tar.gz
 
如果
wget 时提示 -bash:wget command not found!
请先执行安装
yum -y install wget
 
tar -zxvf nginx-1.9.2.tar.gz && cd nginx-1.9.2
 
./configure && make && make install
 
查询nginx主进程号
ps -ef | grep nginx
启动
/usr/local/nginx/sbin/nginx  -c /usr/local/nginx/conf/nginx.conf 
 
重启
/usr/local/nginx/sbin/nginx -s reload
 
useradd -d /home/www -s /sbin/nologin www
 
1) 重启后生效 
开启: chkconfig iptables on 
关闭: chkconfig iptables off 
 
2) 即时生效,重启后失效 
开启: service iptables start 
关闭: service iptables stop 
 
#防火墙
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 801 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000:9045 -j ACCEPT
service iptables restart
 
#如果不存在iptables文件,运行下面一条命令,然后执行服务保存
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
service iptables save
 
#查看开放端口
netstat -tln
 
查看是否有安装
rpm -qa | grep vsftpd
安装
yum -y install vsftpd
 
启动服务
/etc/init.d/vsftpd start
 
#设置开机时自动运行
chkconfig vsftpd on  
#先备份配置文件
cp  /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
 
#配置文件对比;禁止匿名用户登陆
anonymous_enable=NO
 
最底部添加配置信息
pam_service_name=vsftpd
chroot_local_user=YES
guest_enable=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
secure_chroot_dir=/var/run/vsftpd
guest_username=www
 
pasv_min_port=9000 #(设置被动模式的端口范围)
pasv_max_port=9045 #(设置被动模式的端口范围)
 
 
 
#添加目录
mkdir -p /var/run/vsftpd && mkdir -p /etc/vsftpd/vsftpd_user_conf
 
 
#建立虚拟用户;(第一行写 用户名,第二行写 密码,保存退出)
vim user_ftp.list
 
testuser
abcawddd
 
 
#安装生成验证文件依赖包
yum install db4*
 
#生成验证文件
db_load -T -t hash -f /etc/vsftpd/user_ftp.list /etc/vsftpd/user_ftp.db
 
#修改权限
chmod 600 /etc/vsftpd/user_ftp.db
 
#在/etc/pam.d/vsftpd的文件头部加入以下信息(在后面加入无效)(加入下面内容,其他全部注释。)
修改前先备份 cp /etc/pam.d/vsftpd  /etc/pam.d/vsftpd.bak
恢复cp /etc/pam.d/vsftpdbak  /etc/pam.d/vsftpd
vi /etc/pam.d/vsftpd
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/user_ftp
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/user_ftp
注意:如果系统为64位,则上面的lib改为lib64,否则配置失败
 
 
#虚拟用户分配权限
cd /etc/vsftpd/vsftpd_user_conf/
 
touch testuser
 
 
local_root=/www/web/www_test_com/public_html/
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
 
 
#添加21端口,重启防火墙
#重启vsftpd
 
如果登陆500;执行以下命令
setsebool -P ftp_home_dir on && setenforce 0 && service vsftpd restart
 
 
如果无法创建目录等操作
vi /etc/selinux/config
SELINUX=enforcing           (把默认的改成disabled)
然后执行
setenforce 0
 
 
#在服务端配置被动模式就可以从根源上解决这问题。
pasv_min_port=9000 #(设置被动模式的端口范围)
pasv_max_port=9045 #(设置被动模式的端口范围)
 
 
如果nignx重启出错,pid找不到
则运行下面这句话处理
1. 重新运行一下/usr/local/nginx/sbin/nginx
2. 重启nginx:/usr/local/nginx/sbin/nginx -s reload
 
 
#添加开机自动启动
vi /etc/init.d/nginx
 
 
*********************************************************************************************************************************
 
#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# it is v.0.0.2 version.
# chkconfig: - 85 15
# description: Nginx is a high-performance web and proxy server.
#              It has a lot of features, but it's not for everyone.
# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/var/run/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];then
   echo "nginx already running...."
   exit 1
fi
   echo -n $"Starting $prog: "
   daemon $nginxd -c ${nginx_config}
   RETVAL=$?
   echo
   [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
   return $RETVAL
}
# Stop nginx daemons functions.
stop() {
        echo -n $"Stopping $prog: "
        killproc $nginxd
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid
}
# reload nginx service functions.
reload() {
    echo -n $"Reloading $prog: "
    #kill -HUP `cat ${nginx_pid}`
    killproc $nginxd -HUP
    RETVAL=$?
    echo
}
# See how we were called.
case "$1" in
start)
        start
        ;;
stop)
        stop
        ;;
reload)
        reload
        ;;
restart)
        stop
        start
        ;;
status)
        status $prog
        RETVAL=$?
        ;;
*)
        echo $"Usage: $prog {start|stop|restart|reload|status|help}"
        exit 1
esac
exit $RETVAL
 
*********************************************************************************************************************************
 
#修改文件权限 (a+x参数表示 ==> all user can execute  所有用户可执行)
chmod a+x /etc/init.d/nginx
 
 
最后将ngix加入到rc.local文件中,这样开机的时候nginx就默认启动了
vi /etc/rc.local
#添加
/etc/init.d/nginx start
 
 
 
https安装
cd /usr/local/src
 
如果无法下载成功
wget --no-check-certificate https://openssl.org/source/openssl-1.0.2g.tar.gz
请使用以下地址
wget https://zxdowncom.oss-cn-shanghai.aliyuncs.com/package/openssl-1.0.2g.tar.gz
 
tar -xzf openssl-1.0.2g.tar.gz && cd openssl-1.0.2g
 
./config --prefix=/usr/local/openssl
 
make && make install
 
 
/usr/local/nginx/sbin/nginx -V
 
cd /root/
 
如果无法下载成功
wget --no-check-certificate http://tengine.taobao.org/download/tengine-2.2.0.tar.gz
请使用以下地址
wget https://zxdowncom.oss-cn-shanghai.aliyuncs.com/package/tengine-2.2.0.tar.gz
 
tar -xzf tengine-2.2.0.tar.gz && cd tengine-2.2.0
 
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-http_v2_module --with-openssl=/usr/local/src/openssl-1.0.2g/
 
 
make && make install
 

热门文章

评论已有( 0 )条评论

昵称*
快评短语
写的太好了,正好为我解惑 一般般,不详细 无感觉,然并卵 没啥事,就来灌一下水 还有其它的吗?