一、nginx 的作用
- 做静态页展示的web服务
- nginx做负载均衡
四层
七层 - 反向代理
二. 源码安装nginx
编译安装nginx
1)解压nginx
[root@db01 ~]# tar xf nginx-1.10.3.tar.gz
2)进入nginx目录,并查看
[root@db01 ~]# cd nginx-1.10.3
[root@db01 nginx-1.10.3]# ll
total 672
drwxr-xr-x. 6 1001 1001 4096 May 13 09:04 auto
-rw-r–r--. 1 1001 1001 265299 Jan 31 2017 CHANGES
-rw-r–r--. 1 1001 1001 404694 Jan 31 2017 CHANGES.ru
drwxr-xr-x. 2 1001 1001 168 May 13 09:04 conf
-rwxr-xr-x. 1 1001 1001 2481 Jan 31 2017 configure
drwxr-xr-x. 4 1001 1001 72 May 13 09:04 contrib
drwxr-xr-x. 2 1001 1001 40 May 13 09:04 html
-rw-r–r--. 1 1001 1001 1397 Jan 31 2017 LICENSE
drwxr-xr-x. 2 1001 1001 21 May 13 09:04 man
-rw-r–r--. 1 1001 1001 49 Jan 31 2017 README
drwxr-xr-x. 9 1001 1001 91 May 13 09:04 src
3)创建nginx用户
[root@db01 nginx-1.10.3]# useradd nginx -s /sbin/nologin -M
4)生成make file
./configure
–user=nginx
–group=nginx
–prefix=/usr/local/nginx-1.10.3/
–with-http_stub_status_module
–with-http_ssl_module --with-stream
5)编译 && 安装
[root@db01 nginx-1.10.3]# make && make install
6)做软连接
[root@db01 ~]# ln -s /usr/local/nginx-1.10.3 /usr/local/nginx
[root@db01 ~]# ll /usr/local/nginx/
total 4
drwxr-xr-x. 2 root root 4096 May 13 09:13 conf
drwxr-xr-x. 2 root root 40 May 13 09:13 html
drwxr-xr-x. 2 root root 6 May 13 09:13 logs
drwxr-xr-x. 2 root root 19 May 13 09:13
7)检测nginx语法
[root@db01 conf]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx-1.10.3//conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx-1.10.3//conf/nginx.conf test is successful
8)启动nginx
[root@db01 conf]# /usr/local/nginx/sbin/nginx
9)检查nginx的端口
[root@db01 conf]# netstat -lntup|grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 61777/nginx: master
10)重新加载
[root@db01 conf]# /usr/local/nginx/sbin/nginx -s reload
11)简化nginx配置文件
[root@db01 conf]# grep -Ev “#|^$” nginx.conf.default > nginx.conf
12)创建conf.d目录
[root@db01 conf]# mkdir /usr/local/nginx/conf/conf.d
13)编辑虚拟主机
[root@db01 conf.d]# vim www.oldboy.com.conf
server {
listen 80;
server_name localhost;
location / {
站点目录的根目录位置
root html; =============> root /code/;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
14)创建站点目录
[root@db01 html]# mkdir /code
15)上传代码
16)重新加载nginx
[root@db01 code]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx-1.10.3//conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx-1.10.3//conf/nginx.conf test is successful
[root@db01 code]# /usr/local/nginx/sbin/nginx -s reload
####每次做好配置之后都需要 -t测试下
三. 部署VUE
1)下载node
wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz
2)解压
[root@db01 opt]# tar xf node-v8.6.0-linux-x64.tar.gz
3)移动目录
[root@db01 opt]# mv node-v8.6.0-linux-x64 /usr/local/node-8.6.0
4)做软连接
ln -s /usr/local/node-8.6.0 /usr/local/node
5)进入node目录,查看bin目录
[root@db01 opt]# cd /usr/local/node
[root@db01 node]# ll bin/
total 36264
-rwxrwxr-x. 1 500 500 37133148 Sep 27 2017 node
lrwxrwxrwx. 1 500 500 38 Sep 27 2017 npm -> …/lib/node_modules/npm/bin/npm-cli.js
lrwxrwxrwx. 1 500 500 38 Sep 27 2017 npx -> …/lib/node_modules/npm/bin/npx-cli.js
6)添加环境变量
[root@db01 node]# vim /etc/profile.d/node.sh
export PATH="/usr/local/node/bin:$PATH"
7)加载环境变量
[root@db01 node]# source /etc/profile
8)检测node和npm版本
[root@db01 node]# npm -v
5.3.0
[root@db01 node]# node -v
v8.6.0
9)解压vue代码
[root@db01 opt]# unzip 07-luffy_project_01.zip
10)进入代码目录,安装package.json中的模块
[root@db01 opt]# cd 07-luffy_project_01
[root@db01 07-luffy_project_01]# npm install
11)更改js文件中的IP
sed -i ‘s#127.0.0.1#10.0.0.51#g’ /opt/07-luffy_project_01/src/restful/api.js
12)生成静态文件目录
npm run build
13)编辑 nginx配置文件,创建一个虚拟主机
[root@db01 dist]# vim /usr/local/nginx/conf/conf.d/www.luffy.com.conf
server {
listen 80;
server_name www.luffy.com;
location / {
root /opt/07-luffy_project_01/dist;
index index.html index.htm;
}
error_page 400 403 404 405 /40x.html;
}
14)配置hosts解析
10.0.0.51 www.luffy.com
15)重新加载nginx
[root@db01 dist]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx-1.10.3//conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx-1.10.3//conf/nginx.conf test is successful
[root@db01 dist]# /usr/local/nginx/sbin/nginx -s reload
前端代码vue部署,这个是前后端分离的部署方法
四.源码安装python3.6环境
编译安装python3
1)下载
[root@db01 ~]# wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
2)解压
[root@db01 ~]# tar xf Python-3.6.4.tgz
3)进入python3目录
[root@db01 ~]# cd Python-3.6.4
4)生成make file
./configure --prefix=/usr/local/python3.6.4 --with-ssl
5)编译 && 安装
[root@db01 Python-3.6.4]# make && make install
#软链接python3命令
[root@db03 ~]# ln -s /usr/local/python3.6.4/bin/python3 /usr/bin/
#软链接pip3命令
[root@db03 ~]# ln -s /usr/local/python3.6.4/bin/pip3 /usr/bin/
#安装redis驱动器
[root@elkstack01 ~]# pip3 install redis
#安装uwsgi
[root@elkstack01 ~]# pip3 install uwsgi
#安装Django
[root@elkstack01 ~]# pip3 install django
#安装uwsgi
[root@elkstack01 ~]# yum install -y uwsgi
6)编辑python需要安装的库文件
[root@db01 opt]# vim requirements.txt
certifi2018.11.29
chardet3.0.4
crypto1.4.1
Django2.1.4
django-redis4.10.0
django-rest-framework0.1.0
djangorestframework3.9.0
idna2.8
Naked0.1.31
pycrypto2.6.1
pytz2018.7
PyYAML3.13
redis3.0.1
requests2.21.0
shellescape3.4.1
urllib31.24.1
uWSGI==2.0.17.1
7)安装库文件
[root@db01 opt]# pip3 install -r requirements.txt
8)解压后端代码
[root@db01 opt]# unzip luffy_boy.zip
9)编辑uwsgi文件
[root@db01 opt]# vim /opt/uwsgi.ini
[uwsgi]
#Django-related settings
#the base directory (full path)
chdir = /opt/luffy_boy #后端代码存放的位置
#Django’s wsgi file
module = luffy_boy.wsgi #这里是项目内的wsgi文件
#the virtualenv (full path)
home = /usr/local/python3.6.4
#process-related settings
#master
master = true
#maximum number of worker processes
processes = 1 #开启线程的个数
#the socket (use the full path to be safe
socket = 0.0.0.0:8888 #打开uwsgi的端口,这里的是8888
#clear environment on exit
vacuum = true
10)启动uwsgi
[root@db01 opt]# uwsgi --ini /opt/uwsgi.ini &
绝对路径:
/usr/local/python3.6.4/bin/uwsgi --ini /opt/uwsgi.ini &
检测是否启动成功:
打开浏览器,访问:10.0.0.51:8888
这个是动静分离的后端代码映射
[root@elkstack01 ~]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 8000;
server_name blog.driverzeng.com;
location / {
uwsgi_pass 0.0.0.0:8888;
include /usr/local/nginx/conf/uwsgi_params;
}
location /static {
alias /code/drz/static;
}
}
这个是前后端不分离的nginx的配置方法
[root@lb01 conf]# cat nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream backend {
server 172.16.1.7:80 weight=1;
server 172.16.1.8:80 weight=1;
}
server {
listen 80;
server_name www.driverzeng.com;
location / {
index index.html index.htm;
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
}