您的位置:首页 > 运维架构 > Nginx

Centos7下安装Nginx

2017-05-08 11:36 411 查看

1.环境安装

yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel


2.编译安装

需要创建/var/temp/nginx及/usr/local/nginx两个目录,程序会被安装在/opt/nginx目录下

mkdir -p /var/temp/nginx

mkdir -p /usr/local/nginx

tar -zxvf nginx-1.11.6.tar.gz

cd nginx-1.11.6

./configure \
--prefix=/opt/nginx \
--pid-path=/usr/local/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-stream


make

make install

3.配置成服务并且设置为开机自启动

vim /etc/init.d/nginx

#注意:修改PATH和NAME字段, 匹配自己的安装路径

#! /bin/bash
# chkconfig: - 85 15
PATH=/opt/nginx
DESC="nginx daemon"
NAME=nginx
DAEMON=$PATH/sbin/$NAME
CONFIGFILE=$PATH/conf/$NAME.conf
PIDFILE=/usr/local/nginx/nginx.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit 0
do_start() {
$DAEMON -c $CONFIGFILE || echo -n "nginx already running"
}
do_stop() {
$DAEMON -s stop || echo -n "nginx not running"
}
do_reload() {
$DAEMON -s reload || echo -n "nginx can't reload"
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
do_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
do_stop
echo "."
;;
reload|graceful)
echo -n "Reloading $DESC configuration..."
do_reload
echo "."
;;
restart)
echo -n "Restarting $DESC: $NAME"
do_stop
do_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
exit 3
;;
esac
exit 0


设置执行权限

chmod a+x /etc/init.d/nginx


注册成服务

chkconfig --add nginx


设置开机启动

chkconfig nginx on


启动/停止/重启

systemctl start nginx.service       #启动nginx服务
systemctl stop nginx.service        #停止nginx服务
systemctl restart nginx.service     #重启nginx服务
systemctl reload nginx.service      #重新读取nginx配置(不用停止nginx服务就能使修改的配置生效)


4.配置参考

user  nginx;
worker_processes  4;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
worker_connections  1024;
}

http {
include       mime.types;
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;

sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;

#隐藏版本号
server_tokens off;

proxy_intercept_errors on;
proxy_set_hea
4000
der   Host             $host;
proxy_set_header   Remote_Addr      $remote_addr;
proxy_set_header   X-Real-IP        $remote_addr;
proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

gzip  on;

server {
listen       80;
server_name  manager.abc.it;

if ($host != 'manager.abc.it') {
return 403;
}

location / {
proxy_pass http://manager; }

error_page   502  /502.html;
location = /502.html {
root   html;
}

location ~ ^/favicon\.ico$ {
root  /usr/tomcat/manager/ROOT;
}

#使用 ~* 代表忽略大小写
location ~* .*\.(htm|html|ico|gif|bmp|jpg|jpeg|png|mp3|mid|wma|mp4|swf|flv|rar|zip|txt|doc|ppt|xls|pdf|css)$ {
root /usr/dianzan/topic/htdoc;
#expires 30d; #过期时间为30天
}

}

server {
listen       80;
server_name  pay.abc.it;

location / {
proxy_pass http://pay; }

location ~ ^/favicon\.ico$ {
root  /usr/tomcat/manager/ROOT;
}

}

server {
listen       80;
server_name  upload.abc.it;

location / {
proxy_pass http://upload; }

location ~ ^/favicon\.ico$ {
root  /usr/tomcat/manager/ROOT;
}

location ~ ^/upload/ {
root /usr;
}

}

server {
listen       80;
server_name  dubbo.abc.it;

location / {
proxy_pass http://dubbo; }

location ~ ^/favicon\.ico$ {
root  /usr/tomcat/manager/ROOT;
}

}

server {
listen       80;
server_name  wxserver.abc.it;

location / {
proxy_pass http://wxserver; }

location ~ ^/favicon\.ico$ {
root  /usr/tomcat/manager/ROOT;
}

}

upstream manager{
server  127.0.0.1:8080;
}

upstream pay {
server  127.0.0.1:8081;
}

upstream upload {
server  127.0.0.1:8082;
}

upstream dubbo {
server  127.0.0.1:8083;
}

upstream wxserver {
server  127.0.0.1:8084;
}

}

#tcp代理,通过nginx访问内网mysql
stream {
upstream mysql {
server 192.168.11.121:3306 max_fails=3 fail_timeout=30s;
}

server {
listen 13306;
proxy_timeout 3s;
proxy_pass mysql;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx centos