Showing posts with label nginx. Show all posts
Showing posts with label nginx. Show all posts

Thursday, April 25, 2019

linux: 在ubuntu14.04上安裝nginx+php

https://www.cnblogs.com/lurenjiashuo/p/ubuntu-nginx-thinkphp.html

Https: self sign setting for nginx

mkdir -p /usr/local/etc/ssl/private
mkdir -p /usr/local/etc/ssl/certs
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /usr/local/etc/ssl/private/nginx-selfsigned.key -out /usr/local/etc/ssl/certs/nginx-selfsigned.crt


sudo openssl dhparam -out /usr/local/etc/ssl/certs/dhparam.pem 128


mkdir -p /usr/local/etc/nginx/snippets
touch /usr/local/etc/nginx/snippets/self-signed.conf


sudo vim /usr/local/etc/nginx/snippets/self-signed.conf
填入
ssl_certificate /usr/local/etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /usr/local/etc/ssl/private/nginx-selfsigned.key;


touch /usr/local/etc/nginx/snippets/ssl-params.conf
sudo vim /usr/local/etc/nginx/snippets/ssl-params.conf
填入
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

ssl_dhparam /usr/local/etc/ssl/certs/dhparam.pem;
sudo vim /usr/local/etc/nginx/nginx.conf
填入
worker_processes  1;

events {
  worker_connections  1024;
}

http {
  include       mime.types;
  default_type  application/octet-stream;

  sendfile           on;
  keepalive_timeout  65;
  proxy_http_version 1.1;

  # configure nginx server to redirect to HTTPS
  server {
    listen       1337;
    server_name  localhost;
    return 302 https://$server_name:7332$request_uri;
  }

  # configure nginx server with ssl
  server {
    listen       1338 ssl http2;
    server_name  localhost;
    include snippets/self-signed.conf;
    include snippets/ssl-params.conf;

    # route requests to the local development server
    location / {
      proxy_pass http://localhost:8080/;
    }
  }

  include servers/*;
}
或者參考這個︰
https://blog.gtwang.org/linux/nginx-create-and-install-ssl-certificate-on-ubuntu-linux/

Wednesday, February 13, 2019

docker: nginx + php

下載docker images
docker pull nginx
docker pull bitnami/php-fpm

運行php-fpm和nginx,使用/var/www/html作為host的網頁目錄,不用進入docker進行修改
docker run -d -v /var/www/html:/usr/share/nginx/html --name php-fpm docker.io/bitnami/php-fpm
docker run -d --name nginx -p 8888:80 -v /var/www/html:/usr/share/nginx/html docker.io/nginx

檢查是否運行,以及IP位置
docker ps -a
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

Option 1: 進入nginx修改網頁IP位置,不想在container裏面裝vi的話看下一步。
docker exec -it nginx /bin/bash
vi /etc/nginx/conf.d/default.conf

Option 2: 可以複製出來再修改
docker cp nginx:/etc/nginx/conf.d/default.conf ./
vi default.conf
修改後再放回去
docker cp ./default.conf  nginx:/etc/nginx/conf.d/default.conf

修改這幾項,填入上一步查詢到的IP,其他保留︰
service_name = [[NGINX_IP]];
location / {
   root  /usr/share/nginx/html;
   index  index.php index.html index.htm;
}
location ~ \.php$ {
   fastcgi_pass   [[PHP_FPM_IP]]:9000;
   fastcgi_index  index.php;
   fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
   fastcgi_param  SCRIPT_NAME      $fastcgi_script_name;
   include        fastcgi_params;
}

重啓nginx即可成功。
docker restart nginx

使用host的IP + 8888 port就可以訪問。
例如192.168.199.2:8888



中間筆記 不用理:

進入container
docker exec -it myNginx /bin/bash
離開
ctrl+p+q



docker run --restart=always --name mysql -v /etc/localtime:/etc/localtime:ro -p 3306:3306 -v /works/db:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=rootroot -e MYSQL_DATABASE=test_project -e MYSQL_USER=project -e MYSQL_PASSWORD=12345678 -d mysql/mysql-server:5.5

docker run --restart=always --name php-fpm_5.2 -v /etc/localtime:/etc/localtime:ro -v /works/www:/works/www --link mysql:db -d helder/php-5.2

docker run --restart=always --name nginx -v /etc/localtime:/etc/localtime:ro -p 80:80 -e NGINX_SITE_ROOT=/works/www -v /works/www:/works/www -v /works/nginx/log:/var/log/nginx/ --link php-fpm_5.2:phpfpm -d nginx