1、下载源码包解压编译

启动多个,请看:在linux系统下安装两个nginx以及启动

查看nginx包路径:http://nginx.org/download/,两种下载方式:

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

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


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


已安装好

windows怎么运行两个nginx 安装两个nginx_windows怎么运行两个nginx

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、执行以下命令,直接粘贴即可



windows怎么运行两个nginx 安装两个nginx_ci_02


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


windows怎么运行两个nginx 安装两个nginx_ci_03

 

 

windows怎么运行两个nginx 安装两个nginx_nginx_04

 

 

 

 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_processes  1; #工作进程:数目。根据硬件调整,通常等于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_connections  1024; # 工作进程的最大连接数量
}
 
 
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_timeout  0;  #keepalive超时时间
    keepalive_timeout  65;
 
    #gzip  on; #开启gzip压缩服务
 
    #虚拟主机
    server {
        listen       80;  #配置监听端口号
        server_name  localhost; #配置访问域名,域名可以有多个,用空格隔开
 
        #charset koi8-r; #字符集设置
 
        #access_log  logs/host.access.log  main;
 
        location / {
            root   html;
            index  index.html index.htm;
        }
        #错误跳转页
        #error_page  404              /404.html; 
 
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
 
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
 
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ { #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
        #    root           html; #根目录
        #    fastcgi_pass   127.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;
        #}
    }
 
 
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;
 
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
 
 
    # HTTPS server
    #
    #server {
    #    listen       443 ssl;  #监听端口
    #    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;
    #    }
    #}
 
}