首页 > 网站 > Nginx > 正文

Nginx服务器初期基本配置指南

2024-08-30 12:26:22
字体:
来源:转载
供稿:网友

一、准备
pcre,有关正则表达式匹配;zlib,用于压缩。这些就不细说了,如果要安装最简版的nginx,记得准备好这两样东西就好了。
用root账户启动服务是比较危险的!  前段时间,测试服务器被黑掉了,终归到底是通过一个root启动的服务上传了木马,最后连ssh都屏蔽了,活生生成为一台肉鸡。。。
所以,惨痛的经验告诉我,一定要为服务建立对应的组和用户,限制访问权限,降低风险! 
这里为nginx建立一个www组,并建立一个不登录的账户nginx:

#追加一个www组 groupadd -f www #追加一个nginx用户 useradd -s /sbin/nologin -g www nginx 


建立一个目录用于存放nginx日志文件,并赋予相应权限:

#建立nginx日志目录 mkdir /var/log/nginx #赋予访问权限 chown nginx.www /var/log/nginx 


二、编译安装
我把pcre、zlib、nginx的压缩包都放在了/opt/software路径下,服务要装在/opt/servers路径下。
先对pcre、zlib、nginx解压,然后编译安装:

./configure --prefix=/opt/servers/nginx / --user=nginx / --group=www / --pid-path=/var/run/nginx.pid / --error-log-path=/var/log/nginx/error.log / --http-log-path=/var/log/nginx/access.log / --with-pcre=/opt/software/pcre-8.10 / --with-zlib=/opt/software/zlib-1.2.5 / --with-http_stub_status_module / --with-http_realip_module / --with-http_gzip_static_module / --without-http_fastcgi_module / --without-http_memcached_module / --without-http_map_module / --without-http_geo_module / --without-http_autoindex_module / --with-poll_module && make && make install 


三、系统配置
我希望nginx可以作为一个服务,通过service命令启动或停止。
这样做的好处是,不论我用什么用户调用这个service命令,都不会因为使用错误的账户带来安全问题。
建立一个系统文件:

vim /etc/init.d/nginx 


前人栽树,后人乘凉。已经有老鸟做好了启动配置文件:

#!/bin/bash # v.0.0.1 # create by jackbillow at 2007.10.15 # nginx - This shell script takes care of starting and stopping nginx. # # chkconfig: - 60 50 # description: nginx [engine x] is light http web/proxy server # that answers incoming ftp service requests. # processname: nginx # config: /etc/nginx.conf nginx_path="/opt/servers/nginx" nginx_pid="/var/run/nginx.pid"  # 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 $nginx_path/sbin/nginx ] || exit 0 RETVAL=0 prog="nginx" start() { # Start daemons. if [ -e $nginx_pid -a ! -z $nginx_pid ];then   echo "nginx already running...."   exit 1 fi if [ -e $nginx_path/conf/nginx.conf ];then   echo -n $"Starting $prog: "   $nginx_path/sbin/nginx -c $nginx_path/conf/nginx.conf &   RETVAL=$?   [ $RETVAL -eq 0 ] && {     touch /var/lock/subsys/$prog     success $"$prog"   }   echo else   RETVAL=1 fi   return $RETVAL } # Stop daemons. stop() {   echo -n $"Stopping $prog: "   killproc -d 10 $nigx_path/sbin/nginx   RETVAL=$?   echo   [ $RETVAL = 0 ] && rm -f $nginx_pid /var/lock/subsys/$prog } # See how we were called. case "$1" in start)   start   ;; stop)   stop   ;; restart)   stop   start   ;; status)   status $prog   RETVAL=$?   ;; *)   echo $"Usage: $0 {start|stop|restart|status}"   exit 1 esac exit $RETVAL             
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表