sudo apt-get install nginx
php
看一下安装的结果:css
默认安装位置:html
/usr/sbin/nginx:主程序
/etc/nginx:存放配置文件
/usr/share/nginx:存放静态文件
/var/log/nginx:存放日志
复制代码
指令node
启动nginx
中止nginx -s stop
重载nginx -s reload
复制代码
配置文件mysql
vi /etc/nginx/nginx.conf
vi /etc/nginx/sites-enabled/default
复制代码
worker_processes auto; #CPU核心数
worker_rlimit_nofile 65535; # ulimit -n
events {
multi_accept on;
use epoll;
worker_connections 1024;
}
http {
sendfile on; #默认就是on的
aio on;
directio 4m;
tcp_nopush on;
tcp_nodelay on;
}
复制代码
server {
listen 80; # 监听端口
server_name www.xxxxx.com; #监听域名/主机名/IP
location / {
root html; #/usr/share/nginx/html;
index index.html index.htm;
}
location ~/myweb { #区分大小写,即访问Myweb是不行的
root html/localtion; #定义myweb所在的路径,即在浏览器访问myweb的时候,实际是访问的html/localtion/myweb目录里面的web内容
index index.html; #默认首页文件类型
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
复制代码
虚拟主机(多IP、多port、多host域名) server_name localhost www.a.com; #多个域名用空格间隔便可 server_name 192.168.0.2; #IP是本机的网卡IP地址android
多域名:nginx
server {
listen 80;
server_name www.abc.com;
location / {
proxy_pass http://192.168.1.10;
}
}
server {
listen 80;
server_name image.test.com;
location / {
alias /var/www/image;
}
}
server {
listen 80;
server_name video.abc.com;
location / {
proxy_pass http://192.168.1.10:8081/video;
}
}
复制代码
在上述配置中,将三个域名分发给了不一样的模块处理:web
/ 通用匹配 至关于default
= #用于标准uri前,须要请求字串与uri彻底匹配,若是匹配成功就中止向下匹配并当即处理请求。
~ #区分大小写
~* #不区分大写
!~ #区分大小写不匹配
!~* #不区分大小写不匹配
^ #匹配以什么开头
$ #匹配以什么结尾
\ #转义字符。能够转. * ?等
* #表明任意长度的任意字符
-f和!-f #用来判断是否存在文件
-d和!-d #用来判断是否存在目录
-e和!-e #用来判断是否存在文件或目录
-x和!-x #用来判断文件是否可执行
复制代码
列出目录sql
location /images {
root /var/www/nginx-default/images;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
复制代码
静态资源直接处理shell
location ~ \.(css|js|fonts|png|svg|html|txt)$ {
#access_log on;
expires 1d; #过时时间
root /newhome/go/gowork/goonlinemusic/static;
try_files $uri $uri/;
}
复制代码
不一样浏览器
upstream android {
server 172.16.1.7:9090;
}
upstream iphone {
server 172.16.1.7:9091;
}
upstream pc {
server 172.16.1.7:9092;
}
server {
listen 80;
server_name sj.drz.com;
charset 'utf-8';
location / {
#若是客户端来源是Android则跳转到Android的资源;
if ($http_user_agent ~* "Android") {
proxy_pass http://android;
}
#若是客户端来源是Iphone则跳转到Iphone的资源;
if ($http_user_agent ~* "Iphone") {
proxy_pass http://iphone;
}
#若是客户端是IE浏览器则返回403错误;
if ($http_user_agent ~* "MSIE") {
return 403;
}
#默认跳转pc资源;
proxy_pass http://pc;
}
}
复制代码
setheader
server {
listen 80;
server_name www.xxx.com;
location /xxx/
{
proxy_pass http://192.168.1.10:8080/xxx/;
proxy_set_header host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
复制代码
go server
## 设置反向代理,指向go服务器 ##
server {
listen 8081;
location / {
proxy_pass http://localhost:9090;
#go 服务器能够指定到其余的机器上,这里设定本机服务器
#Proxy Settings
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
## End 设置反向代理,指向go服务器 ##
复制代码
##
# Upstream Settings
##
upstream test {
server 127.0.0.1:777 weight=5;
server 127.0.0.1:5000 weight=5;
server 192.168.12.100:5000 fail_timeout=2s max_fails=1;
}
server {
listen 8081;
location / {
proxy_pass http://test;
#Proxy Settings
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
复制代码
fail_timeout 设置的时间内服务器没有响应则认为服务器失效,默认10s max_fails 容许链接失败的次数,默认1 fail_time 服务器被移除轮询队列的时间,默认10s(在移除的时间内再也不被轮询请求) backup 标记该服务器为备用服务器,当主服务器宕机时,它将会代替主服务器接收请求 down 标记此服务器永久停机
server {
listen 443 ssl;
server_name ssl.xxxxx.com; #绑定证书的域名
ssl_certificate 1_ssl.xxxxx.com_bundle.crt;#绝对路径
ssl_certificate_key 2_ssl.xxxxx.com.key; #改成绝对路径
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:8886;
}
}
复制代码
安装
sudo apt-get install php7.2 php7.2-fpm php-json php-curl php7.2-mysql php7.2-cgi
复制代码
vi /etc/nginx/sites-enabled/default
server {
listen 80 default_server;
listen [::]:80 default_server;
root /root/www/default;
index index.php index.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
# pass PHP scripts to FastCGI server
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
#fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
# With php-cgi (or other tcp sockets):
fastcgi_pass 127.0.0.1:9000;
}
}
复制代码
vi /etc/php/7.2/fpm/pool.d/www.conf
36 listen = 127.0.0.1:9000
复制代码
service nginx restart
service php7.2-fpm restart