LNMP的Nginx启动脚本和配置文件

配置LNMP完成安装,并把PHP也解析完成,但是Nginx启动使用的是一个可执行文件:/usr/local/nginx/sbin/nginx 来启动,非常不方便,要给Nginx写一个启动脚本,同Apache,虽然Apache的启动脚本没有放到/etc/init.d目录下,但Apache有个非常方便的启动、重启、停止脚本,即:“apachectl”,而Nginx没有这样的工具,

我们需要手动制作一个启动脚本,如下:

[[email protected] ~]# vim /etc/init.d/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



给启动脚本授权

[[email protected] ~]# chmod 755 /etc/init.d/nginx

加入启动进程并设为开机启动

[[email protected] ~]# chkconfig --add nginx

[[email protected] ~]# chkconfig nginx on

[[email protected] ~]# service nginx start

编辑完启动脚本后,我们来看他的配置文件,自带的配置文件很乱, 我们给他整理一下

[[email protected] ~]# > /usr/local/nginx/conf/nginx.conf

[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf

将一下内容粘贴到nginx.conf里面,

并在最后一行写入  include vhosts/*.conf;



user nobody nobody;

worker_processes 2;

error_log /usr/local/nginx/logs/nginx_error.log crit;

pid /usr/local/nginx/logs/nginx.pid;

worker_rlimit_nofile 51200;

events

{

use epoll;

worker_connections 6000;

}

http

{

include mime.types;

default_type application/octet-stream;

server_names_hash_bucket_size 3526;

server_names_hash_max_size 4096;

log_format combined_realip ‘$remote_addr $http_x_forwarded_for [$time_local]‘

‘$host "$request_uri" $status‘

‘"$http_referer" "$http_user_agent"‘;

sendfile on;

tcp_nopush on;

keepalive_timeout 30;

client_header_timeout 3m;

client_body_timeout 3m;

send_timeout 3m;

connection_pool_size 256;

client_header_buffer_size 1k;

large_client_header_buffers 8 4k;

request_pool_size 4k;

output_buffers 4 32k;

postpone_output 1460;

client_max_body_size 10m;

client_body_buffer_size 256k;

client_body_temp_path /usr/local/nginx/client_body_temp;

proxy_temp_path /usr/local/nginx/proxy_temp;

fastcgi_temp_path /usr/local/nginx/fastcgi_temp;

fastcgi_intercept_errors on;

tcp_nodelay on;

gzip on;

gzip_min_length 1k;

gzip_buffers 4 8k;

gzip_comp_level 5;

gzip_http_version 1.1;

gzip_types text/plain application/x-javascript text/css text/htm application/xml;

include vhosts/*.conf;



:wq

保存退出

进入conf目录下

[[email protected] ~]# cd /usr/local/nginx/conf/

创建vhosts目录

[[email protected] conf]# mkdir vhosts

进入vhosts目录

[r[email protected] conf]# cd vhosts

[[email protected] vhosts]# vim default.conf

将“server部分”粘贴进去



server

{

listen 80;

server_name localhost;

index index.html index.htm index.php;

root /usr/local/nginx/html;

location ~ \.php$ {

include fastcgi_params;

fastcgi_pass unix:/tmp/php-fcgi.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;

}

}



改动一:

在listen 80 后面加上default_server,

即:listen 80 default_server;

(解释:不管主机解析成什么样的域名,全都走这个默认虚拟主机。)

改动二:

将root /usr/local/nginx/html;改成/tmp/1233(这个1233目录根据公司情况自定义);并在下一行写入deny all;

即:root /tmp/1233;

deny all;

(解释:为了限制,我们应该把第一个默认虚拟主机搞成403。)

改动三:删除下面关于php解析的一整段(用不着了)。



改动完成,如下所示:



server

{

listen 80 default_server;

server_name localhost;

index index.html index.htm index.php;

root /tmp/1233;

deny all;

}



创建有关于上述改动中的“目录”

[[email protected] vhosts]# mkdir /tmp/1233

检查有无错误

[[email protected] vhosts]# /usr/local/nginx/sbin/nginx -t

重加载

[[email protected] vhosts]# /etc/init.d/nginx reload

实验:

[[email protected] vhosts]# curl -x127.0.0.1:80 www.777.com

<html>

<head><title>403 Forbidden</title></head>

<body bgcolor="white">

<center><h1>403 Forbidden</h1></center>

<hr><center>nginx/1.6.3</center>

</body>

</html>

说明:不管什么域名,只要指向过来访问,都是403

时间: 2024-09-30 09:44:19

LNMP的Nginx启动脚本和配置文件的相关文章

LNMP之 nginx 启动脚本和配置文件

因为 nginx 启动不方便,所以我们需要自已手动来编译一个nginx 的启动脚本 [[email protected] ~]# vim /etc/init.d/nginx  #加入以下内容 #!/bin/bash# chkconfig: - 30 21# description: http service.# Source Function Library. /etc/init.d/functions# Nginx Settings NGINX_SBIN="/usr/local/nginx/s

LNMP搭建4:Nginx启动脚本和配置文件

Nginx没有像apachetl那样的启动脚本,我们需要手动做一个 [[email protected] html]# vim /etc/init.d/nginx 内容如下:http://www.apelearn.com/study_v2/chapter18.html #!/bin/bash # chkconfig: - 30 21 # description: http service. # Source Function Library . /etc/init.d/functions # N

nginx启动脚本和配置文件

#vim /etc/init.d/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&qu

nginx启动脚本编写及设置开机自启动

环境:Centos 6.8 如果机器是Centos 7的,此脚本和设置开机自启动方法不适用. 首先确保nginx配置文件中:有pid目录 pid        logs/nginx.pid; 1.1 编写nginx启动脚本 [[email protected] ~]# cd /server/scripts [[email protected] scripts]# vim nginx.sh  #!/bin/bash [ -f /etc/init.d/functions ] && . /etc

Nginx启动脚本大家来找茬

今天讲到shell编程,我给大家讲解手工开发Nginx启动脚本时,写的脚本,调试发现有问题, 挺有意思的一个问题点,有2个地方有影响启动和停止的问题,有兴趣的可以研究下, 一周后公布结果! [[email protected] 03]# cat nginxd-good  #!/bin/sh RETVAL=0 path="/application/nginx" . /etc/init.d/functions start(){ if [ ! -f "$path/logs/ngin

简单的nginx启动脚本

初学时写的一个简单nginx启动脚本,使用定义函数和传参的方法.(生产环境中是不能用pkill来杀服务的,要使用-s reload来平滑重启) [[email protected]]# cat start_nginx04.sh #!/bin/sh ./etc/init.d/functions start_nginx=/nginx/sbin/nginx USAGE(){ echo "USAGE $0{start|stop|restart}" exit 1 } if [ $# -ne 1

centos下nginx启动脚本和chkconfig管理

在安装完nginx后,重新启动需要“kill -HUP nginx进程编号”来进行重新加载,显然十分不方便.如果能像apache一样,直接通过脚本进行管理就方便多了. nginx官方早就想好了,也提供了这个脚本,地址:http://wiki.nginx.org/RedHatNginxInitScript.这里将管理脚本收录在这里: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

1.4-nginx启动脚本和配置文件

由于nginx不带有启动脚本,所以需要自己编辑一个 vim /etc/init.d/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="/us

centos 7 nginx启动脚本

centos7使用systemd代替之前的systemv的启动脚本,可以说更简单.不再需要编写一长段脚本. 复制以下内容到/usr/lib/systemd/system/nginx.service [Unit] Description=nginx - high performance web server Documentation=http://nginx.org/en/docs/ After=network.target remote-fs.target nss-lookup.target