linux添加nginx启动脚本_linux下nginx部署以及配置详解

本文详细介绍了在Linux环境下如何安装Nginx,包括下载源码、编译安装、添加启动脚本,以及Nginx配置选项和配置文件的解析。通过设置--prefix、--sbin-path等参数进行编译,最后创建启动脚本并添加到服务管理列表,实现Nginx的启动和管理。
摘要由CSDN通过智能技术生成

1、下载源码包解压编译

1、在官网下载使用Xftp上传到linux上(不推荐使用)

2、(推荐)在版本上选好,直接命令下载,如下:(下载nginx-1.16.1.tar.gz版本)建议到home目录执行该命令,方便找到

wget http://nginx.org/download/nginx-1.16.1.tar.gz

已安装好

e7f726aeb4b467db35268b57c6c6d008.png

3、解压

tar xvf nginx-1.16.1.tar.gz -C /usr/local/src/

4、安装相应的开发工具

yum groupinstall "Development tools"yum-y install gcc wget gcc-c++ automake autoconf libtool libxml2-devel libxslt-devel perl-devel perl-ExtUtils-Embed pcre-devel openssl-devel

5、进入nginx目录进行编译安装

1、进入目录

cd /usr/local/src/nginx-1.16.1

2、执行以下命令,直接粘贴即可

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

./configure \--prefix=/usr/local/nginx \--sbin-path=/usr/sbin/nginx \--conf-path=/etc/nginx/nginx.conf \--error-log-path=/var/log/nginx/error.log \--http-log-path=/var/log/nginx/access.log \--pid-path=/var/run/nginx.pid \--lock-path=/var/run/nginx.lock\--http-client-body-temp-path=/var/tmp/nginx/client \--http-proxy-temp-path=/var/tmp/nginx/proxy \--http-fastcgi-temp-path=/var/tmp/nginx/fcgi \--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \--http-scgi-temp-path=/var/tmp/nginx/scgi \--user=nginx \--group=nginx \--with-pcre \--with-http_v2_module \--with-http_ssl_module \--with-http_realip_module \--with-http_addition_module \--with-http_sub_module \--with-http_dav_module \--with-http_flv_module \--with-http_mp4_module \--with-http_gunzip_module \--with-http_gzip_static_module \--with-http_random_index_module \--with-http_secure_link_module \--with-http_stub_status_module \--with-http_auth_request_module \--with-mail \--with-mail_ssl_module \--with-file-aio \--with-ipv6 \--with-http_v2_module \--with-threads \--with-stream \--with-stream_ssl_module

View Code

3d76c9975e5cd153f904bc050bad2573.png

3、完成编译安装

make && make install

mkdir -pv /var/tmp/nginx/client

6、添加SysV启动脚本

1、创建文件

vi /etc/init.d/nginx

2.按i进入编辑状态

#!/bin/sh

#

# nginx - this script starts and stops the nginx daemon

#

# chkconfig: - 85 15

# description: Nginx is an HTTP(S) server, HTTP(S) reverse \

# proxy and IMAP/POP3 proxy server

# processname: nginx

# config: /etc/nginx/nginx.conf

# config: /etc/sysconfig/nginx

# pidfile: /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

nginx="/usr/sbin/nginx"

prog=$(basename $nginx)

NGINX_CONF_FILE="/etc/nginx/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

start() {

[ -x $nginx ] || exit 5

[ -f $NGINX_CONF_FILE ] || exit 6

echo -n $"Starting $prog: "

daemon $nginx -c $NGINX_CONF_FILE

retval=$?

echo

[ $retval -eq 0 ] && touch $lockfile

return $retval

}

stop() {

echo -n $"Stopping $prog: "

killproc $prog -QUIT

retval=$?

echo

[ $retval -eq 0 ] && rm -f $lockfile

return $retval

killall -9 nginx

}

restart() {

configtest || return $?

stop

sleep 1

start

}

reload() {

configtest || return $?

echo -n $"Reloading $prog: "

killproc $nginx -HUP

RETVAL=$?

echo

}

force_reload() {

restart

}

configtest() {

$nginx -t -c $NGINX_CONF_FILE

}

rh_status() {

status $prog

}

rh_status_q() {

rh_status >/dev/null 2>&1

}

case "$1" in

start)

rh_status_q && exit 0

$1

;;

stop)

rh_status_q || exit 0

$1

;;

restart|configtest)

$1

;;

reload)

rh_status_q || exit 7

$1

;;

force-reload)

force_reload

;;

status)

rh_status

;;

condrestart|try-restart)

rh_status_q || exit 0

;;

*)

echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"

exit 2

esac

7.赋予脚本执行权限

chmod +x /etc/init.d/nginx

8.添加nginx服务进程用户

groupadd -r nginx

useradd-r -g nginx nginx

9、添加至服务管理列表,设置开机自启

chkconfig --add nginx

chkconfig nginx on

10、启动nginx

关闭防火墙:systemctl stop firewalld

service nginx start

41900e511d2ba25df1c4be349e708f76.png

ffc90f1da69a3c8ce2800ee168a62f17.png

2、详细配置

配置选项

说明

--prefix

nginx的安装目录,默认为/usr/local/nginx

--sbin-path

nginx可执行文件路径,若没有设置则依赖于--prefix

--conf-path

设置nginx.conf配置文件路径,nginx启动时可以通过-c参数指定配置文件

--error-log-path

错误日志路径

--http-log-path

http主请求日志文件

--pid-path

存放nginx进程的pid号

--lock-path

共享存储器互斥锁文件路径

--http-client-body-temp-path

客户端收到请求后,临时存放请求体目录

--http-proxy-temp-path

使用代理后,通过该项设置存放请求体路径

--http-fastcgi-temp-path

设置FastCGI临时文件的目录

--http-uwsgi-temp-path

设置uWSGI临时文件的目录

--http-scgi-temp-path

设置SCGI临时文件的目录

--user

指定nginx运行的用户

--group

指定nginx运行的用户组

--with-pcre

设置PCRE库的源码路径

--with-http_v2_module

用来支持 HTTP 2.0 的

--with-http_ssl_module

如果需要对流量进行加密,可以使用该选项,再URLs中开始部分将会是https(需要OpenSSL库)

3.nginx.conf配置

#user nobody;

worker_processes1; #工作进程:数目。根据硬件调整,通常等于cpu数量或者2倍cpu数量。

#错误日志存放路径

#error_log logs/error.log;

#error_log logs/error.log notice;

#error_log logs/error.log info;

#pid logs/nginx.pid; # nginx进程pid存放路径

events {

worker_connections1024; # 工作进程的最大连接数量

}

http {

include mime.types; #指定mime类型,由mime.type来定义

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 logs/access.log main; #用log_format指令设置日志格式后,需要用access_log来指定日志文件存放路径

sendfile on; #指定nginx是否调用sendfile函数来输出文件,对于普通应用,必须设置on。

如果用来进行下载等应用磁盘io重负载应用,可设着off,以平衡磁盘与网络io处理速度,降低系统uptime。

#tcp_nopush on; #此选项允许或禁止使用socket的TCP_CORK的选项,此选项仅在sendfile的时候使用

#keepalive_timeout0; #keepalive超时时间

keepalive_timeout65;

#gzip on; #开启gzip压缩服务

#虚拟主机

server {

listen80; #配置监听端口号

server_name localhost; #配置访问域名,域名可以有多个,用空格隔开

#charset koi8-r; #字符集设置

#access_log logs/host.access.log main;

location/{

root html;

index index.html index.htm;

}

#错误跳转页

#error_page404 /404.html;

# redirect server error pages to thestatic page /50x.html

#

error_page500 502 503 504 /50x.html;

location= /50x.html {

root html;

}

# proxy the PHP scripts to Apache listening on127.0.0.1:80#

#location~\.php$ {

# proxy_pass http://127.0.0.1;

#}

# pass the PHP scripts to FastCGI server listening on127.0.0.1:9000#

#location~ \.php$ { #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。

# root html; #根目录

# fastcgi_pass127.0.0.1:9000; #请求转向定义的服务器列表

# fastcgi_index index.php; # 如果请求的Fastcgi_index URI是以/结束的, 该指令设置的文件会被附加到URI的后面并保存在变量$fastcig_script_name中

# fastcgi_param SCRIPT_FILENAME/scripts$fastcgi_script_name;

# include fastcgi_params;

#}

# deny access to .htaccess files,if Apache's document root

# concurs with nginx's one

#

#location~ /\.ht {

# deny all;

#}

}

# anothervirtual host using mix of IP-, name-, and port-based configuration

#

#server {

# listen8000;

# listen somename:8080;

# server_name somename alias another.alias;

# location/{

# root html;

# index index.html index.htm;

# }

#}

# HTTPS server

#

#server {

# listen443ssl; #监听端口

# server_name localhost; #域名

# ssl_certificate cert.pem; #证书位置

# ssl_certificate_key cert.key; #私钥位置

# ssl_session_cache shared:SSL:1m;

# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5; #密码加密方式

# ssl_prefer_server_ciphers on; # ssl_prefer_server_ciphers on; #

# location/{

# root html;

# index index.html index.htm;

# }

#}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值